2012-06-05 48 views
2

我的zend應用程序使用多個數據庫連接,所以我使用multidb資源在application.ini文件中配置多個連接。zend:使用multidb時將會話存儲在數據庫中

現在我想將應用程序會話存儲到數據庫中,使用Zend_Session_SaveHandler_DbTable,但我找不到指定使用哪些連接來訪問數據庫的方法。

每一個例子我在網上找到使用db資源,並依賴默認的數據庫適配器上。不幸的是,會議必須被存儲在數據庫中是不是默認的一個...

我如何指定要用於存儲會話哪個分貝?

回答

3

雖然沒有在Zend文檔中指定它,但Zend_Session_SaveHandler_DbTable類的構造函數接受名爲db的參數,該參數指定要使用的數據庫連接。

$db = $this->getPluginResource('multidb')->getDb('zend'); 
$config = array(
    'db'    => $db, 
    'name'   => 'session', 
    'primary'  => 'id', 
    'modifiedColumn' => 'modified', 
    'dataColumn'  => 'data', 
    'lifetimeColumn' => 'lifetime' 
); 
Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config)); 
Zend_Session::start(); 

我沒能在application.ini配置文件中specfy這些設置,但...

+0

這是什麼,然後http://framework.zend.com/manual/en/zend.session。 savehandler.dbtable.html? – Venu

+0

@Venu:你可以告訴我在哪裏,在這個文檔頁面上,明確寫出該鍵應該被命名爲'db',並且該值是連接對象? (有一個不起眼的評論:'//或者你可以直接傳遞到保存handler'不知道如何實現這一目標的數據庫連接) –

+0

道歉的!是的,我同意它不是很清楚,但他們提到了它。 – Venu

相關問題