There is a out of box resources in Zend Framework, when configures in the ini file
resource.db.user ="xxxx"...
bootstrap, db adaptörü kurar önyükleme db adaptörü de, ya da kayıt içine sadece merak ayarlar nedir?
Kimden ZF Manual on Zend Application:
Resource Registry
Kaynak yöntemleri veya eklentiler, hepsi değilse, birçok nesneleri başlatmak olacaktır, ve birçok durumda, bu nesneler, başka bir yerde uygulamada gerekli olacak. Nasıl bunları erişebilir?
Zend_Application_Bootstrap_BootstrapAbstractbu nesneler için yerel bir kayıt sağlar. Onlara da nesneleri saklamak için, sadece kaynaklardan onları geri.Maksimum esneklik, bu kayıt, dahili olarak "kap" olarak adlandırılır; onun sadece gereksinimleri bir nesne olmasıdır. Kaynaklar daha sonra kaynak adı adını özellikleri olarak kayıtlıdır. Varsayılan olarak, bir örneği
Zend_Registrykullanılır, ama aynı zamanda istediğiniz herhangi başka bir nesneyi belirtebilirsiniz.
Onlar da devlet Not:
Kayıt ve aynı zamanda konteyner küresel olmadığını unutmayın. Bu kaynakları getirmek için bootstrap erişimi gerekir anlamına gelir.
Ben sourcecode for Zend_Application_Bootstrap_BootstrapAbstract and the container is indeed a new Zend_Registry instance. Like they state in the manual, this is a local registry and not set via setInstance() küresel örneği olacak şekilde kontrol ettik. Yani atıfta eğer küresel Zend_Registry Eğer getInstance(), sonra cevap hayır ile olsun. Db adaptör orada olmayacak.
Not: I am not entirely sure, the db adapter is even stored inside the local registry object, since I could not find any reference for plugins being put there. registerPluginResource() bir dizi kaynak koyar gibi görünüyor. Olsa soru için önemli değil. Cevap hala hayır. Em>
Sen Bootstrap sınıfında kayıt kendinizi ekleyebilirsiniz:
protected function _initAddDbToRegistry()
{
$this->bootstrap('db');
$db = $this->getResource('db');
Zend_Registry::set('db', $db);
}
Eğer sadece Db adaptör almak istiyorsanız Ancak, daha sonra bir dizi seçenek vardır:
Öncelikle, Zend_Application_Resource_Db Zend_Db_Table için varsayılan olarak db adaptörü koyacaktır, böylece kullanarak uygulama her yerde alabilirsiniz:
$db = Zend_Db_Table::getDefaultAdapter();
Alternatif olarak, ön denetleyicisi aracılığıyla retreive edebilirsiniz. Bir denetleyici eylem içinde kullanabilirsiniz:
$bootstrap = $this->getInvokeArg('bootstrap');
$db = $bootstrap->->getResource('db');
veya uygulama boyunca, bu iş olacak:
$bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
db = $bootstrap->->getResource('db');