私はいくつかのプロジェクトコードをZF-Boilerplateに移行しており、オートローダーでいくつかの奇妙な動作が発生しています。Zend framework autoloader strange behavior
私はのapplication.ini
autoloadernamespaces[] = "App_"
autoloadernamespaces[] = "Boilerplate_"
;autoloaderNamespaces[] = "DCH_"
autoloadernamespaces[] = "Elastica_"
autoloadernamespaces[] = "EasyBib_"
ノートにこれらの行を持っている; [] = "DCH_" autoloaderNamespacesがコメントアウトされています。
その後、私のブートストラップで、私はテストとして次の行を持っている:
$test=new Elastica_Facet_Range('testing');
正常に動作しますが、私は以前にコメント行のコメントを外した場合、私はこのエラーを取得する:
Fatal error: Class 'Elastica_Facet_Range' not found in /vagrant/www/myswap/application/Bootstrap.php on line 43
それは私の名前空間を稼働させることができないという意味で私を怒らせています。
私がコメントアウト行でZend_Loader_Autoloaderをステップ実行すると、保護された変数名前空間が含まれています。私が移動した場合の行コメントを外し名前空間でのZend、ZendX_、APP_、Boilerplate_、Elastica_とEasyBib_
も(含まれていリストの最後にDCHライン):私はリスト名前空間の開始にDCH_ラインを移動する場合Zend_、ZendXとDCH_
は含まれています:Zendの、ZendX_、APP_、Boilerplate_、Elastica_とEasyBib_を
私はそれを動作させるために、ブートストラップに以下を追加したが、それはハックであり、私はそれに満足していないよ:
$autoloader = \Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('DCH_');
任意のアイデア?
ただ野生の推測をしていますが、アプリケーション/ iniの行を並べ替えてみましたので、DHC_が最後になるようにしましたか? – ChrisR
コメントありがとうございます。私はオリジナルの投稿を更新しました。 – dimbo