2012-02-10 7 views
2

Autoloaderがオンデマンドでロードしようとすると、Zend Framework 1.11の下でさまざまな "Db"クラスで次のようなエラーが発生しています: Zend Frameworkはオートローダを使用してクラスエラーを再宣言できません


致命的なエラーCでクラスZend_Db_Table_Selectを再宣言することはできません:\ WWW \ Zendの\ Dbの\表\ Select.phpライン上

致命的なエラー:宣言されていない静的プロパティへのアクセス:取得Zend_Db_Table_Abstract: :$ _ writeClosed in 不明ライン


に私は明示的には、「必要」のラインを持っているZend Frameworkの一部だけは、Zendオートローダあるので、なぜか、どのようにこれらのクラスを再宣言している私にはわからない:

require_once('C:/www/Zend/Loader/Autoloader.php'); 
Zend_Loader_Autoloader::getInstance(); 

さらに悪いことに、私が述べたように、これはランダムに起こったようです。様々な自動ロードされたクラスメソッドへの多数の呼び出しが行われます。そして、このエラーがどこかで(一見)どこからも起こりません。エラーの再発を止める唯一の方法は、Webサーバー全体を再起動することでした。その後、Zend Autoloaderを使ってロシアのルーレットゲームに戻ります。

私は本当にここで私の髪を引っ張っているし、誰かが何が起こっている可能性が考えていることを願っています。すぐに複数のシステムにこのアプリケーションを導入する必要がありますが、このバグが発生するたびに管理者にサーバー全体を再起動するように伝えることはできません。 :(

+0

の問題はまったく同じです。唯一の解決策は私のubuntuボックスにApacheとPHPを再インストールすることでした。 – jere

+1

[こちら](http://framework.zend.com/issues/browse/ZF-7563?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel) – jere

+0

迷惑ですが、やりやすいほどです私の開発サーバー上で(とにかくアップグレードのために延滞)、しかし、それほど簡単な主要な電子商取引サーバーではありません。これはZendが修正しようとしているバグですか?私はそれを逃したかもしれないが、それが示唆されるものは何も見つけられなかった。 – eComEvo

答えて

1

これは役立つかもしれない。

をあなたが望むことなく、二回あなたのZendのライブラリをロードしていないことを確認します。

すなわちに/etc/php.iniまたは同等のもZendのをロードしていないことを確認してください独自のアプリケーションのローダーに加えて、ライブラリ何とか、。

ここにヒントが警告があなたがクラスを再宣言しようとしているを示しているということです。クラスへ

このポイントは、何らかの形でプリロードされていた。

絶対パスでも相対パスでも使用しないことを確認してください。

0

application.iniのライブラリへのパスを削除します。

関連する問題