从Zend_Db加载Zend_Test_DbAdapter :: factory()

时间:2011-09-08 09:10:22

标签: php zend-framework testing zend-db

如何使用Test DbAdapter获取Zend Framework Zend_Db::factory()的实例?

我有以下代码,但工厂标记在我的适配器盒上,并打破了文件路径。他们的测试适配器无法通过自己的工厂加载似乎有点讽刺。我在这里做错了什么?

$config = new Zend_Config(
    array(
        'database' => array(
            'adapter' => 'DbAdapter',
            'params' => array(
                'adapterNamespace' => 'Zend_Test',
                'host' => 'localhost',
                'dbname' => 'mydb',
                'username' => 'not',
                'password' => 'needed'
            )
        )
    )
);

$db = Zend_Db::factory($config->database);

我收到以下错误:

Zend_Loader::include_once(Zend/Test/Dbadapter.php): failed to open stream: No such file or directory

更新

上面的代码是直接复制和粘贴,适配器参数大小写正确:'DbAdapter'。这与文件大小写Zend_Test_DbAdapter匹配。

我将代码更改为手动实例化Zend_Test_DbAdapter并自动加载而没有问题。

$db = new Zend_Test_DbAdapter;
print_r(get_class($db));

输出:

Zend_Test_DbAdapter

我仍然认为Zend_Db::factory()方法使我的适配器字符大小写,上面是第一个字符,下面是其他字符。

1 个答案:

答案 0 :(得分:0)

检查错字错误

if not 'adapter' => 'Dbadapter', to 'adapter' => 'DbAdapter',

Zend/Test/Dbadapter.php does not exits
Zend/Test/DbAdapter.php exits in library 

OR

档案缺失

你必须在includePath中添加zend lib,或者如果它的zend项目将zend文件添加到库中

/应用 /图书馆  添加Zend文件(从http://framework.zend.com/download下载)