我刚开始了解ZF和火鸟是因为我被分配到一个项目。这几天我一直在尝试把两者联系起来,但我还没有成功。我尝试了ZF与PDO_Mysql,它工作得很好,因为它与PHP的火鸟连接(出ZF),但是当我试图与ZF中的火鸟适配器连接时,它一直显示各种错误。
检查一下。要在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框架和火鸟,因此我不太确定我应该做什么,我应该去哪里。
[披露:我从未使用过Firebird数据库]
您可能已经知道,Firebird适配器并不是作为核心ZF1包的一部分发布的。看起来你可以从ZendX
前缀下的extras
中提取它:
将Firebird.php
和Firebird/
文件放入目录library/ZendX/Db/Adapter/
。
如果您的application.ini
使用resources.db.*
键,那么在您的Bootstrap
类中就不需要_initDb()
方法。只要确保在这里也包含adapterNamespace
键:
resources.db.params.adapterNamespace = "ZendX_Db_Adapter_"
您可能还需要在自动加载器名称空间中添加ZendX
前缀:
autoloaderNamespaces[] = "ZendX_"
没有经过测试,但是这样应该可以工作