记得要在./symfony文件中加入: 
cmd>php symfony plugin-install http://plugins.symfony-project.com/sfSmartyViewPlugin
all:
view_class: sfSmarty
# 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
--- 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()
*
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));
}
}