如何使用Zend_Db::factory()获得Zend框架实例Test DbAdapter?从Zend_Db :: factory()加载Zend_Test_DbAdapter()
我有以下代码,但工厂在我的适配器外壳上打印并打破文件路径。这似乎有点讽刺他们的测试适配器不能被他们自己的工厂加载。我在这里做错了什么?
$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()
方法nerfing我的适配器字符大小写,上盖的第一个字符,下外壳的其余部分。
我无法得到这个工作。由于Zend的适配器采用了惰性连接,为了测试的目的,我能够使用'pdo_mysql'适配器并声明'Zend_Db_Adapter_Abstract'的实例是从我的工厂方法返回的。这足以满足我的需求,但据我所见,您无法通过Zend_Db :: factory()获得'Zend_Test_DbAdapter'的实例' –