Question

I just started to learn about ZF and Firebird because of a project I am assigned to. I have been trying to make the connection between both for several days now, but I haven't succeed yet. I tried ZF with PDO_Mysql and it works just fine as it does Firebird connection with PHP (out of ZF), but when I try to make the connection with the Firebird adapter in ZF it keeps displaying all kinds of errors.

So, just to check. To make the connection in ZF with Firebird it should be done with the the adapter (Firebird.php) which I have configure in application.ini? I have something like this in the 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"**

Resulting error: ...Firebird.php): failed to open stream: No such file or directory in ...\Loader.php

I have also seen that a function needs to be added in the Bootstrap.php. If I add the function initDb in the bootstrap.php like this:

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

I get the error: ...Uncaught exception 'Zend_Application_Bootstrap_Exception' with message 'Resource matching "config" not found' in ...\BootstrapAbstract.php

I would like to know what do I really need to do in order to make the connection work. Sorry if this is too obvious, but I haven't been able to find a basic connection case specific for Zend Framework and Firebird, therefore I am not really sure on what I should do and where I should go.

Was it helpful?

Solution

[Disclosure: I've never used the Firebird db.]

As you are probably aware, the Firebird adapter does not ship as part of the core ZF1 package. Looks like you can pull it from extras under the ZendX prefix:

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

Drop the Firebird.php and Firebird/ files into a directory library/ZendX/Db/Adapter/.

If your application.ini uses the resources.db.* keys, then there is no need for an _initDb() method in your Bootstrap class. Just make sure that you include the adapterNamespace key in there, as well:

resources.db.params.adapterNamespace = "ZendX_Db_Adapter_"

You might also need to add the ZendX prefix to your autoloader namespaces:

autoloaderNamespaces[] = "ZendX_"

Not tested, but something like this should work.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top