既存の 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 にアップグレードしようとしています。