1

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

4

1 回答 1

0

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

现在,当您遇到实际问题时,我敢打赌它是您最有可能使用的插件之一sfAssetsLibraryPlugin。您还需要将它们升级到它们的 1.4 分支。如果它们还没有从 1.x 转换或有但有一些遗漏,那么你将不得不分叉它们并自己更新东西。

于 2012-11-01T13:01:00.040 回答