Nasıl Zend_Loader_Autoloader devre dışı bırakabilirsiniz?
Elle boşaltmak için Autoloader zorlayacağını, ancak bu bileşenler, tescil ediliyor bağlı derde yol açabilir: Diğer yükleyici kapakları emin olun.
spl_autoload_unregister(array('Zend_Loader_Autoloader','autoload'));
Ben Zend_Loader_Autoloader yapıcısı bu soyulmuş ve sınıfının dışında çalışmak ve kaydını yerine yükleyici kayıt değiştirdi.
Eğer Zend_Application kullanıyorsanız, sizin index.php, ZA örneğini oluşturduktan sonra, / ZF kullanmak istediğiniz autoloader ayarlayabilirsiniz alabilirsiniz:
$app = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/config.ini');
$app->getAutoloader()->setDefaultAutoloader('yourAutoloader');
$app->bootstrap()->run();
HTH
Ben otomatik olarak PHP ortamı, autoloading ve önyükleme kurar, size Zend_Application
kullandığınız varsayalım. Bu çok kullanışlı. Ne yazık ki, Zend_Autoloader
sert yapıcı içine kodlanmıştır, ve bunu geçersiz kılmak için herhangi bir yol göremiyorum kurma:
public function __construct($environment, $options = null)
{
$this->_environment = (string) $environment;
require_once 'Zend/Loader/Autoloader.php';
$this->_autoloader = Zend_Loader_Autoloader::getInstance();
//snip
}
Benim ilk önerim bir Zend_Autoloader
yapmak için yol ve uyum içinde diğer autoloader iş bulmak olacaktır. Ben herhangi bir sorun ile yeni Doctrine::IsolatedClassLoader
ile Zend_Autoloader
kullanarak oldum. Autoloader ad alanları hakkında açık olma veya kullanma konusunda tavsiye pushAutoloader()
geçerli olup, çalışması gerekir.
Bu bir seçenek değilse Ancak, muhtemelen Zend_Application
kullanarak terk ve çevre setup ve kendinizi önyükleyebilir işlemesi gerekir. Bir rahatsızlık iken, çok zor olmamalı oluyor. Önceki sürüm 1.8 (Zend_Application
tanıştığında olan) en ZF öğreticiler örnekler vermiştir.
İşte bu bazı ayrıntılı slaytlar (şimdi eski) set bulunuyor:
Getting Started With Zend Framework v1.6 için
Zend_Loader :: registerAutoload (false 'Zend_Loader',);
Onun çerçeve belgelerinde http://framework.zend.com/manual/en/zend.loader.html#zend.loader.load.autoload
Ancak, ben size zend autoloader bırakarak herhangi bir sorun sürece spl_autoload_register kullanarak özdevinimli_yükle geri arama kayıt olarak etkin () bu yüzden Autoload yığınına eklendi alır olmalı sanmıyorum.
Spl_autoload_register kullanarak, tüm geri çağrıları isteği karşılamak için denemek için çağrılır. Geri arama başarılı bir kez zincir kesintiye olacak eğer ben bilmiyorum. O zaman onun muhtemelen geri çağrıları doğru veya yanlış dönen tarafından kontrol etmezse.