我正在将现有网站从 Symfony 1.3.8 升级到 1.4.12。我不断收到有关 javascript 帮助程序的错误消息。经过一番研究,我发现这是由于助手的名称更改所致。
我在我的所有(数百个)php文件中进行了手动搜索/替换:
<?php use_helper('Javascript'); ?>
to:
<?php use_helper('JavascriptBase'); ?>
然后我清除了缓存(手动删除了所有内容和子文件夹),然后重新启动了网站。该站点无法加载,当我检查 php_error.log 文件时,我发现了以下消息:
Unable to load "JavascriptHelper.php" helper in:
SF_ROOT_DIR/apps/frontend/modules/home/lib/helper,
SF_ROOT_DIR/apps/frontend/lib/helper,
SF_ROOT_DIR/lib/helper,
SF_ROOT_DIR/plugins/sfAssetsLibraryPlugin/lib/helper,
SF_ROOT_DIR/plugins/sfGoogleAnalyticsPlugin/lib/helper,
SF_SYMFONY_LIB_DIR/helper.
我确定我已经替换了所有出现的地方,所以我进行了 grep 搜索:
grep -lr "use_helper('Javascript'" . 2>/dev/null | grep -v .svn
./doc/2colwideLHS.php
./log/php_errors.log.old
./apps/frontend/modules/sfGuardAuth/templates/registerSuccess.php.old
可以看出,使用的文件都不包含旧的帮助程序名称 - 为什么它仍然无法正常工作,我错过了什么?
[[编辑]]
根据我得到的反馈,我决定禁用所有插件(Propel 插件除外)。这是我的 config/ProjectConfiguration.php 文件的样子:
<?php
class ProjectConfiguration extends sfProjectConfiguration
{
public function setup()
{
$this->enablePlugins(array('sfPropelPlugin',
/*'sfAssetsLibraryPlugin',
'sfFormExtraPlugin',
'sfGoogleAnalyticsPlugin',
'sfGuardPlugin'*/));
}
}
但是,在清除缓存并刷新网页后,我得到与以前完全相同的错误。我现在越来越绝望,因为该网站已经被关闭了一天的大部分时间,我需要尽快让它恢复在线。
顺便说一句,我知道不再支持 1.4.12,但是 Symfony 将目标帖子从 Symfony 1.x 移动到 2.x 以至于升级到 2.0 将涉及整个站点的重写——我不这样做目前有资源要做,所以我正在尝试将工作站点升级到下一个最好的东西,1.4.12。