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パッケージの一部として出荷されていません。プレフィックスextrasの下からプルできるようです: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()BootstrapadapterNamespace

resources.db.params.adapterNamespace = "ZendX_Db_Adapter_"

ZendXオートローダーの名前空間にプレフィックスを追加する必要がある場合もあります。

autoloaderNamespaces[] = "ZendX_"

テストされていませんが、このようなものは機能するはずです。

于 2013-01-02T14:58:56.437 に答える