由於性能問題(基準測試)我試圖使用另一個自動加載器比默認的Zend_Loader_Autoloader。如何有效地替換Zend_Loader_Autoloader?
我嘗試不同的方法,使用:
$autoloader->removeAutoloader(array('Zend_Loader_Autoloader', 'autoload'))
->setDefaultAutoloader(array($loader, 'loadClass'));
由於磁帶自動加載機在很大程度上鍊接到Zend框架的最分量,我不能「刪除」。
我做了一個Xdebug的分步調試,它看起來像磁帶自動加載機的工作原理是這樣的:
1)的getInstance 2)檢查類被稱爲根是一個已知的命名空間,如果存在命名空間自動加載磁帶機 3)放入非名稱空間自動加載器 4)嘗試每個自動加載器上的自動加載器,直到找到有效的自動加載器。
然而,在我的情況,我的自動加載已經做到這一點(我使用OPL自動裝載機,類映射策略),我媒體鏈接註冊各自的路徑namspace。
所以它看起來有點開銷,對我來說,因爲我想我的自動加載在查找繞過所有的Zend檢查的非常乞討使用。
你有什麼想法改善嗎?我怎麼能有效地使用Zend框架項目中的自定義(和高性能)自動加載並使用Zend_Loader_Autoloader
@mario,這是我真正做,OPL提供ClassMapLoader及其類映射建設者它會生成一個像「ar」這樣的數組ray('My_Class_Name'=>'My/Class/Name.php');這很簡單 – Trent 2012-01-02 13:34:26