程序员人生
网站导航
返回首页
php框架
web前端
程序人生
php开源
数据库
服务器
互联网
联系我们
symfony 结合 smarty 及相关的问题
栏目:
access
时间:2014-10-18 08:00:00
url:
http://trac.symfony-project.com/wiki/sfSmartyViewPlugin
http://www.symfony-project.org/forum/index.php/mv/msg/122/22565/
url:
让你的symfony 支持smarty
在你的symfony 项目 askeet目录下面(d:/apps/www/symfony/askeet)
执行
记得要在.
/
symfony文件中加入:
set_include_path(dirname(__FILE__).PATH_SEPARATOR.get_include_path());
cmd
>
php symfony plugin
-
install http:
//
plugins.symfony-project.com/sfSmartyViewPlugin
安装完后sfSmartyViewPlugin在 d:/apps/www/symfony/askeet/plugins/sfSmartyViewPlugin目录中
在d:/apps/www/symfony/askeet/plugins/sfSmartyViewPlugin/doc中有一个PDF是专门介绍该插件的安装
经试用总结如下:
1.在d:/apps/www/symfony/askeet/frontend/config中创建 module.yml文件
内容如下
all:
view_class: sfSmarty
2.拷贝d:/apps/www/symfony/askeet/plugins/sfSmartyViewPlugin/templates/layout.tpl
至 d:/apps/www/symfony/askeet/frontend/templates 中
拷贝d:/apps/www/symfony/askeet/plugins/sfSmartyViewPlugin/templates/indexSuccess.tpl
至 d:/apps/www/symfony/askeet/frontend/module/default/templates 中
3.将下面的内容添加到d:/apps/www/symfony/askeet/frontend/config/app.yml中
#
default
values
all:
sfSmartyView:
class_path: d:
/
apps
/
www
/
symfony
/
askeet
/
lib
/
Smarty
/
libs
cache_dir: d:
/
apps
/
www
/
symfony
/
askeet
/
web
/
tmp
template_extension: .tpl
template_security:
false
按上面的三步即可完成一个简单版本的symfony+smarty 的演示
中间可能会出现一些错误,请参考doc目录下面的pdf文档
下面是出现的部分错误:在调试状态下会出现
”Unable to load "SmartyUrlHelper.php" helper “
相关的提示
针对此问题我们可以对d:/apps/www/symfony/askeet/plugins/sfSmartyViewPlugin/lib/sfSmartyView.class.php
做如下的修改
---
sfSmartyViewPlugin
-
0.1
.
2
libsfSmartyView.
class
.php.orig Thu Jan
25
11
:
31
:
27
2007
+++
sfSmartyViewPlugin
-
0.1
.
2
libsfSmartyView.
class
.php Thu Jan
25
12
:
09
:
51
2007
@@
-
172
,
7
+
172
,
12
@@
}
include (self::$cache
->
getFile($helperName, self::CACHENAMESPACE));
try
...
{
-
sfLoader::loadHelpers(array($helperName,
'
Smarty
'
. $helperName));
+
if
(self::isExistSmartyHelper($helperName))
...
{
+
sfLoader::loadHelpers(array($helperName,
'
Smarty
'
. $helperName));
+
}
+
else
...
{
+
sfLoader::loadHelpers(array($helperName));
+
}
}
catch
(sfViewException $e)
...
{
if
(
!
strpos($e
->
getMessage(),
'
Smarty
'
. $helperName))
...
{
@@
-
182
,
6
+
187
,
21
@@
self::$loadedHelpers[$helperName]
=
true
;
}
+
/**/
/*
+ * @param string $helperName
+ * @return boolean
+
*/
+
private
function isExistSmartyHelper($helperName)
...
{
+
if
($pluginHelperDirs
=
glob(sfConfig::
get
(
'
sf_plugins_dir
'
).
'
/*/lib/helper
'
) )
...
{
+
foreach
($pluginHelperDirs
as
$pluginHelperDir)
...
{
+
if
(is_readable($pluginHelperDir .
'
/Smarty
'
. $helperName .
'
Helper.php
'
))
...
{
+
return
true
;
+
}
+
}
+
}
+
return
false
;
+
}
+
/**/
/*
*
* sfSmartyView::parseFile()
*
即d:/apps/www/symfony/askeet/plugins/sfSmartyViewPlugin/lib/sfSmartyView.class.php文件中的部分代码为
start line:
175
include (self::$cache
->
getFile($helperName, self::CACHENAMESPACE));
try
...
{
if
(self::isExistSmartyHelper($helperName))
...
{
sfLoader::loadHelpers(array($helperName,
'
Smarty
'
. $helperName));
}
else
...
{
sfLoader::loadHelpers(array($helperName));
}
}
------分隔线----------------------------
上一篇
如何添加网站for Linux(绑定域名)
下一篇
android 判断 手机号码、邮编、Email邮箱、是否正确
------分隔线----------------------------
最新技术推荐
1
Symfony (III): View
2
symfony 结合 smarty 及相关的问题
3
深入浅出Symfony2 - 结合MongoDB开发LBS应用
4
【Chapter 6 Routing】.The Book for Symfony 2.4 第六章 路由(Routing)
5
Symfony
6
Symfony2.x + EasyUI datagrid Ajax方式实现数据交互
7
Symfony 模版快捷变量应用实例