无法在...中加载“JavascriptHelper.php”帮助程序(Symfony 1.3.8到1.4.12升级)

时间:2012-11-01 12:49:05

标签: php symfony1 symfony-1.4

我正在将现有网站从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。

1 个答案:

答案 0 :(得分:0)

1.4应该没问题。我使用该代码库维护了许多站点。

现在作为你的实际问题,我打赌你使用的插件之一,很可能是sfAssetsLibraryPlugin。您还需要将它们升级到1.4分支。如果他们没有从1.x转换或者有一些失误,那么你必须自己分叉并自行更新。