5

我刚开始了解 ZF 和 Firebird,因为我被分配到一个项目。几天来我一直试图在两者之间建立联系,但我还没有成功。我用 PDO_Mysql 尝试了 ZF,它工作得很好,就像它与 PHP 的 Firebird 连接(在 ZF 之外)一样,但是当我尝试与 ZF 中的 Firebird 适配器建立连接时,它一直显示各种错误。

所以,只是为了检查。要在 ZF 中与 Firebird 建立连接,应该使用我在 application.ini 中配置的适配器 (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 中添加一个函数。如果我像这样在 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

我想知道我真正需要做什么才能使连接正常工作。抱歉,如果这太明显了,但我无法找到特定于 Zend Framework 和 Firebird 的基本连接案例,因此我不确定我应该做什么以及应该去哪里。

4

1 回答 1

5

[披露:我从未使用过Firebird数据库。]

您可能知道,Firebird 适配器不作为核心 ZF1 包的一部分提供。看起来你可以从前缀下拉extrasZendX

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

Firebird.phpFirebird/文件放到一个目录library/ZendX/Db/Adapter/中。

如果您application.ini使用密钥,那么您的类中resources.db.*不需要_initDb()方法。Bootstrap只需确保您也将adapterNamespace密钥包含在其中:

resources.db.params.adapterNamespace = "ZendX_Db_Adapter_"

您可能还需要将ZendX前缀添加到自动加载器命名空间:

autoloaderNamespaces[] = "ZendX_"

未经测试,但这样的事情应该可以工作。

于 2013-01-02T14:58:56.437 回答