パフォーマンスの問題 (ベンチマーク済み) のため、デフォルトの Zend_Loader_Autoloader 以外のオートローダーを使用しようとしています。
を使用して、別の方法を試しました:
$autoloader->removeAutoloader(array('Zend_Loader_Autoloader', 'autoload'))
->setDefaultAutoloader(array($loader, 'loadClass'));
Autoloader は Zend Framework のほとんどのコンポーネントと密接に関連しているため、「削除」することはできません。
Xdebug を段階的にデバッグしたところ、オートローダーは次のように動作するようです。
1) getInstance 2) 呼び出されたクラス ルートが既知の名前空間であるかどうか、およびその名前空間にオートローダーが存在するかどうかを確認します 3) 名前空間のないオートローダーをスタックに置きます 4) 有効な in が見つかるまで、各オートローダーでオートローダーを試します。
ただし、私の場合、オートローダーはすでにこれを行っています (私は classMap 戦略で Opl オートローダーを使用しています)、名前空間をそれぞれのパスに登録しています。
したがって、すべての Zend チェックをバイパスしてルックアップの最初の段階でオートローダーを使用したいので、少しオーバーヘッドがあるように見えます。
それを改善するためのアイデアはありますか?Zend Framework プロジェクト内で Zend_Loader_Autoloader を使用して、カスタム (およびパフォーマンスの高い) オートローダーを効率的に使用するにはどうすればよいですか?