如何使用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'的實例' –