0

次の500エラーが発生するケースを見つけています。

File xyz.php does not exist or class "xyz" was not found in the file at () in SF_ROOT_DIR/lib/vendor/Zend/Loader.php line 107 ...

ここで、xyz ==

Memcache(コマンドラインでsymfony ccを使用しようとする場合)

また

sfDoctrineAdminGenerator(古いAdminGeneratorで生成されたCMSページを使用する場合)。

Propelを使用していますが、Loader.phpはDoctrineでのみ使用されるクラスを読み込もうとしています。

現在、私は不正なハックを使用しており、Loader.phpに、ファイルがこれら2つのケースのいずれかであるかどうかを確認し、そうである場合は、ロードしようとするのではなく、単に戻るように要求しています。明らかに、これは容認できない長期的なものです。

誰かがこれに遭遇しましたか、そしてどのようにそれを解決しましたか?

追加するために編集:

我々は持っています:

class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
    // for compatibility / remove and enable only the plugins you want
    $this->enableAllPluginsExcept(array('sfDoctrinePlugin'));
  }
}

そして、最上位のconfigディレクトリにpropel.iniファイルがあります。これは過去4週間ほどで始まったばかりで、1年以上安定したビルドができました。Doctrineは完全に無効になっていると確信しています。

4

3 に答える 3

0

これは、Symfony のオートローダーと Zend のオートローダーの間の競合でしょうか? ProjectConfiguration.class.php に以下を追加してみてください。

set_include_path(sfConfig::get('sf_lib_dir') . '/vendor' . PATH_SEPARATOR . get_include_path());
require_once sfConfig::get('sf_lib_dir').'/vendor/Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();

上記を使用してZend Luceneを使用していますが、動作します。それでも解決しない場合は、 Zend と Symfonyのスライドの何かが役立つかもしれません。

于 2009-11-20T00:20:19.137 に答える
0

キャッシュをクリアしてください:)そして、index.phpに正しいインクルードファイルがあることを確認してください。

于 2009-12-21T09:01:05.593 に答える
0

私が考えることができる唯一のことは、プロジェクト構成でDoctrineが無効になっていることを確認することです...

于 2009-11-19T18:48:04.020 に答える