1

既存の Web サイトを Symfony 1.3.8 から 1.4.12 にアップグレードしています。JavaScript ヘルパーに関するエラー メッセージが表示され続けます。いくつかの調査を行ったところ、これはヘルパーの名前の変更によるものであることがわかりました。

次のすべての(数百の)phpファイルを手動で検索/置換しました。

<?php use_helper('Javascript'); ?>

to:

<?php use_helper('JavascriptBase'); ?>

次に、キャッシュをクリアし(すべてのコンテンツとサブフォルダーを手動で削除しました)、Web サイトを再起動しました。サイトの読み込みに失敗し、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'*/));

    }
}

ただし、キャッシュをクリアして Web ページを更新すると、以前とまったく同じエラーが発生します。このサイトは 1 日中削除されており、できるだけ早くオンラインに戻す必要があるため、私は必死になっています。

余談ですが、1.4.12 がサポートされなくなったことは承知していますが、Symfony は目標ポストを Symfony 1.x から 2.x に大幅に移動したため、2.0 へのアップグレードにはサイト全体の書き直しが必要になります。現時点で実行するリソースがあるため、作業サイトを次善の策である 1.4.12 にアップグレードしようとしています。

4

1 に答える 1

0

1.4で十分でしょう。私はそのコード ベースを使用して多数のサイトを管理しています。

実際の問題として、使用しているプラ​​グインの 1 つに違いないと思いますsfAssetsLibraryPlugin。それらも 1.4 ブランチにアップグレードする必要があります。それらが 1.x から変換されていないか、変換されていてもいくつかのミスがあった場合は、それらをフォークして自分で更新する必要があります。

于 2012-11-01T13:01:00.040 に答える