2013-01-02 41 views
5

में फायरबर्ड एडाप्टर के साथ डेटाबेस कनेक्शन मैंने अभी एक परियोजना के कारण जेडएफ और फायरबर्ड के बारे में जानना शुरू कर दिया है। मैं अब दोनों दिनों के बीच कनेक्शन बनाने की कोशिश कर रहा हूं, लेकिन मैं अभी तक सफल नहीं हुआ हूं। मैंने पीडीओ_Mysql के साथ जेडएफ की कोशिश की और यह ठीक काम करता है क्योंकि यह PHP (जेडएफ से बाहर) के साथ फ़ायरबर्ड कनेक्शन करता है, लेकिन जब मैं ज़ेडएफ में फायरबर्ड एडेप्टर के साथ कनेक्शन बनाने की कोशिश करता हूं तो यह सभी प्रकार की त्रुटियों को प्रदर्शित करता रहता है।ज़ेंड फ्रेमवर्क

तो, बस जांचने के लिए। फायरबर्ड के साथ जेडएफ में कनेक्शन बनाने के लिए इसे एडाप्टर (Firebird.php) के साथ किया जाना चाहिए जिसे मैंने application.ini में कॉन्फ़िगर किया है?

**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"** 

परिणामस्वरूप त्रुटि: ...Firebird.php): failed to open stream: No such file or directory in ...\Loader.php

मैं भी देखा है एक समारोह Bootstrap.php में जोड़े जाने के लिए की जरूरत है कि मैं application.ini में कुछ इस तरह की है। मैं इस तरह bootstrap.php में समारोह initDb जोड़ते हैं:

**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; 
}** 

मैं त्रुटि मिलती है: ...Uncaught exception 'Zend_Application_Bootstrap_Exception' with message 'Resource matching "config" not found' in ...\BootstrapAbstract.php

मैं पता है कि मैं वास्तव में आदेश कनेक्शन काम करने के लिए में क्या करना चाहिए चाहते हैं । क्षमा करें अगर यह बहुत स्पष्ट है, लेकिन मैं ज़ेंड फ्रेमवर्क और फायरबर्ड के लिए विशिष्ट बुनियादी कनेक्शन केस नहीं ढूंढ पा रहा हूं, इसलिए मुझे वास्तव में यकीन नहीं है कि मुझे क्या करना चाहिए और मुझे कहां जाना चाहिए।

+0

हां, सलाह के लिए धन्यवाद। जब मैंने सवाल पूछा, तो मैं पहली बार साइट का उपयोग कर रहा था, इसलिए इस पर कोई विचार नहीं था कि यह कैसे काम करता है। मुझे अब पता है;) – Clarissa

+0

आपका स्वागत है :-) –

उत्तर

5

[प्रकटीकरण:। मैं Firebird db उपयोग नहीं किया है]

आप शायद जानते हैं, Firebird एडाप्टर कोर ZF1 पैकेज के भाग के रूप में नहीं भेजता है। ऐसा लगता है कि ZendX उपसर्ग के तहत extras से खींच कर सकते हैं:

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

एक निर्देशिका library/ZendX/Db/Adapter/ में Firebird.php और Firebird/ फ़ाइलें यहां छोड़ें।

अपने application.iniresources.db.* कुंजी का उपयोग करता है, तो अपने Bootstrap कक्षा में एक _initDb() विधि के लिए कोई जरूरत नहीं है। बस सुनिश्चित करें कि आप वहाँ में adapterNamespace कुंजी शामिल करना है, साथ ही:

resources.db.params.adapterNamespace = "ZendX_Db_Adapter_"

आप भी अपनी autoloader नामस्थान को ZendX उपसर्ग जोड़ने की जरूरत हो सकती है:

autoloaderNamespaces[] = "ZendX_"

परीक्षण किया है, लेकिन इस तरह कुछ काम करना चाहिए।

+0

ठीक है, अब यह काम करता प्रतीत होता है। मैंने resource.db.params.adapterNamespace = "ZendX_Db_Adapter_" – Clarissa

+0

ठीक जोड़ा, अब यह काम करता प्रतीत होता है। मैंने resource.db.params.adapterNamespace = "ZendX_Db_Adapter_" जोड़ा लेकिन यह अभी भी "ऐसी कोई फ़ाइल या निर्देशिका" त्रुटि नहीं दी गई है, इसलिए मैंने जो किया वह ज़ेंड/लाइब्रेरी> ज़ेंड और ज़ेंडएक्स में एक ही फ़ोल्डर की दो प्रतियां डालना है। यह थोड़ा गन्दा लगता है लेकिन अब यह काम कर रहा है ... धन्यवाद !!! – Clarissa

+0

सार यह है कि 'ZendX' निर्देशिका को आपके' include_path' में होना चाहिए और आमतौर पर, 'लाइब्रेरी' फ़ोल्डर' include_path' घटकों में से एक है। इसे आपके लिए तैयार करने में खुशी हुई। चीयर्स! ;-) –