我正在将现有网站从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。
答案 0 :(得分:0)
1.4应该没问题。我使用该代码库维护了许多站点。
现在作为你的实际问题,我打赌你使用的插件之一,很可能是sfAssetsLibraryPlugin
。您还需要将它们升级到1.4分支。如果他们没有从1.x转换或者有一些失误,那么你必须自己分叉并自行更新。