2013-01-02 21 views
5

Atanan bir proje nedeniyle ZF ve Firebird hakkında bilgi almaya başladım. Şu an iki gün arasında bağlantı kurmaya çalışıyorum ama henüz başaramadım. ZF'yi PDO_Mysql ile denedim ve PHP ile Firebird bağlantısı (ZF dışında) ile gayet iyi çalışıyor, fakat ZF'de Firebird adaptörü ile bağlantı kurmaya çalıştığımda her türlü hatayı görüntülemeye devam ediyor.Zend Framework'de Firebird Bağdaştırıcısı ile veritabanı bağlantısı

Sadece kontrol etmek için. Firfird ile ZF'de bağlantı kurmak için application.ini dosyasında yapılandırdığım adaptör (Firebird.php) ile yapılmalı mı?

**resources.db.adapter = "Firebird" 
resources.db.params.host = "localhost" 
resources.db.params.dbname = "C:/wamp/www/WebTH/application/data/THDATA.gdb" 
resources.db.params.username = "sysdba" 
resources.db.params.password = "masterkey"** 

Ortaya hata: Ben de bir fonksiyon bootstrap.php ilave edilmesi gerektiğini gördük ...Firebird.php): failed to open stream: No such file or directory in ...\Loader.php

ben application.ini içinde böyle bir şey var. Böyle bootstrap.php işlevi initdb eklerseniz:

**protected function _initDb() 
{ 
    $this->bootstrap('config'); 
    $config = $this->getResource('config'); 
    $db = Zend_Db::factory('Firebird', array(
     'host' => $config->Database->Server, 
     'username' => $config->Database->Username, 
     'password' => $config->Database->Password, 
     'dbname' => $config->Database->DBName, 
     'adapterNamespace' => 'ZendX_Db_Adapter' 
    )); 
    return $db; 
}** 

hata alıyorum: Ben gerçekten bağlantı çalışması için yapmanız gereken ne öğrenmek istiyorum

...Uncaught exception 'Zend_Application_Bootstrap_Exception' with message 'Resource matching "config" not found' in ...\BootstrapAbstract.php . Maalesef bu çok açıksa, ancak Zend Framework ve Firebird'e özgü temel bir bağlantı durumu bulamadım, bu yüzden ne yapmam gerektiği ve nereye gitmem gerektiğinden emin değilim.

+0

Evet, tavsiye için teşekkürler. Soruyu sorduğumda siteyi ilk kez kullanıyordum, bu yüzden nasıl çalıştığına dair hiçbir fikri yok. Şimdi biliyorum;) – Clarissa

+0

Rica ederim :-) –

cevap

5

[Açıklanması. Ben Firebird db hiç kullanmadım] muhtemelen bildiğiniz gibi

, Firebird adaptör çekirdek ZF1 paketinin parçası olarak birlikte gelmez. Eğer ZendX öneki altında extras alabiliriz gibi görünüyor:

http://framework.zend.com/svn/framework/extras/trunk/library/ZendX/Db/Adapter/

bir dizine library/ZendX/Db/Adapter/ içine Firebird.php ve Firebird/ dosyaları bırakın. senin application.iniresources.db.* anahtarları kullanıyorsa

, sonra Bootstrap sınıfında bir _initDb() yönteme gerek yoktur. Hemen yanı, içeride adapterNamespace anahtarı içeren emin olun:

resources.db.params.adapterNamespace = "ZendX_Db_Adapter_"

Ayrıca autoloader ad alanlarına ZendX önek eklemek gerekebilir:

autoloaderNamespaces[] = "ZendX_"

Test edilmedi, ama böyle bir şey çalışmalı.

+0

Tamam, Şimdi işe görünüyor. Resources.db.params.adapterNamespace = "ZendX_Db_Adapter_" – Clarissa

+0

Tamam ekledim, şimdi işe yarıyor. Resources.db.params.adapterNamespace = "ZendX_Db_Adapter_" dosyasını ekledim ancak "Hayır böyle bir dosya veya dizin yok" hatası verdim, bu yüzden yaptığım şey aynı klasörün iki kopyasını Zend/kütüphane> Zend ve ZendX'e koymak. Biraz dağınık görünüyor ama şimdi çalışıyor ... Teşekkürler! – Clarissa

+0

Özü, 'ZendX' dizininin' include_path'nızda olması ve genellikle 'library' klasörü' include_path 'bileşenlerinden biridir. Sevindim, senin için çalışıyordu. Şerefe! ;-) –