我刚刚开始了解ZF和Firebird,因为我被分配了一个项目。我一直试图在两者之间建立联系,但我还没有成功。 我用PDO_Mysql尝试了ZF,它的工作正常,因为它与PHP的Firebird连接(在ZF之外),但当我尝试在ZF中与Firebird适配器建立连接时,它会一直显示各种错误。
所以,只是为了检查。要使用Firebird在ZF中建立连接,应该使用我在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特有的基本连接案例,因此我不确定应该做什么以及应该去哪里。
答案 0 :(得分:5)
[披露:我从未使用过Firebird db。]
您可能知道,Firebird适配器不作为核心ZF1包的一部分提供。您似乎可以从extras
前缀{/ 1>}下的ZendX
拉出来
http://framework.zend.com/svn/framework/extras/trunk/library/ZendX/Db/Adapter/
将Firebird.php
和Firebird/
个文件放入目录library/ZendX/Db/Adapter/
。
如果您的application.ini
使用resources.db.*
密钥,则_initDb()
课程中不需要Bootstrap
方法。只需确保在其中包含adapterNamespace
密钥:
resources.db.params.adapterNamespace = "ZendX_Db_Adapter_"
您可能还需要将ZendX
前缀添加到自动加载器命名空间:
autoloaderNamespaces[] = "ZendX_"
未经测试,但这样的事情应该有效。