symfony 结合 smarty 及相关的问题
2008-02-18 16:48
363 查看
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.2libsfSmartyView.class.php.orig Thu Jan 25 11:31:27 2007
+++ sfSmartyViewPlugin-0.1.2libsfSmartyView.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));
}
}
catch (sfViewException $e) ...{
if (!strpos($e->getMessage(), 'Smarty' . $helperName)) ...{
throw $e;
}
}
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;
}
照上面的方法做过修改后 相关的警告会在 log/frontend_dev.log中记录
提示:上面的有些地方要根据你的主机来确定,不可照搬
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.2libsfSmartyView.class.php.orig Thu Jan 25 11:31:27 2007
+++ sfSmartyViewPlugin-0.1.2libsfSmartyView.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));
}
}
catch (sfViewException $e) ...{
if (!strpos($e->getMessage(), 'Smarty' . $helperName)) ...{
throw $e;
}
}
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;
}
照上面的方法做过修改后 相关的警告会在 log/frontend_dev.log中记录
提示:上面的有些地方要根据你的主机来确定,不可照搬
相关文章推荐
- CEGUI与OSG结合相关问题总结
- dwr结合spring例子及出现的相关问题
- symfony Route 相关问题
- Android--焦点问题以及讨论事件传递机制问题(结合部分相关源码)
- symfony 结合 smarty [plugin] could not load plugin file 'block.javascript.php' (core.load_plugins.php, line 118)
- 【资料收集】结合个人项目的socket相关细节问题总结
- 新版新浪微博api使用问题及相关解决办法
- 应聘Java笔试时可能出现问题及其答案 (其他相关)
- GameCenter Achievement相关问题
- springMVC 与jsr 303 结合后端验证问题
- hbase(四)-regionserver相关问题
- SQLMode及相关问题
- HBase Thrift 接口的一些使用问题及相关注意事项
- LeetCode: Buy and Sell Stock相关问题合集
- DLC MFC 配置解密软件环境 相关问题
- 动态规划求解01背包相关的基本问题
- SQL 日期函数 相关问题
- PySQL相关问题
- Hadoop 中文编码相关问题 -- mapreduce程序处理GBK编码数据并输出GBK编码数据(转)
- LINUX 系统如何配置IP 和NDS 还有相关问题解决办法