2011-10-04 53 views
1

我試圖爲2個模塊獲得不同的會話配置。Zend Framework特定的模塊會話配置

在我的應用程序INI我已經設置了類似的模塊:

resources.modules[] = 
resources.frontcontroller.moduleDirectory = APPLICATION_PATH "/modules" 
resources.frontcontroller.throwerrors  = true 
resources.layout.layout     = "layout" 

,併爲會議

resources.session.save_path   = APPLICATION_PATH "/temp/session" 
resources.session.use_cookies   = true 
resources.session.use_only_cookies = true 
resources.session.gc_maxlifetime  = 3600 
resources.session.remember_me_seconds = 3600 
resources.session.name    = "sid" 
resources.session.gc_probability  = 1 


backoffice.resources.session.save_path   = APPLICATION_PATH "/temp/bo/session" 
backoffice.resources.session.use_cookies   = true 
backoffice.resources.session.use_only_cookies = true 
backoffice.resources.session.gc_maxlifetime  = 3600 
backoffice.resources.session.remember_me_seconds = 3600 
backoffice.resources.session.name    = "BOsid" 
backoffice.resources.session.gc_probability  = 1 

但是當我去後臺模塊我仍然有我的默認configuraton

任何想法什麼應該是獲得不同模塊的不同會話的最佳方式?

感謝

回答

0

我要奉勸你配置定製爲ZF特定模塊的另一種方法: 1.爲每個模塊的配置文件:/modules/$moduleName/configs/module.ini 2.添加到根引導下一個代碼:

protected function _initBootstrap() 
{ 
    $_conf = new Zend_Config_Ini(APPLICATION_PATH . "/modules/" . $this->getModuleName() . "/configs/module.ini", APPLICATION_ENV); 
    $this->_options = array_merge($this->_options, $_conf->toArray()); 

} 
+1

謝謝,但引導程序對象中沒有方法getModuleName() – samuel

0

我終於選擇了一個控制器插件。

一些代碼像

class App_Controller_Plugin_Session extends Zend_Controller_Plugin_Abstract 
{ 


public function routeShutdown(Zend_Controller_Request_Abstract $request) 
{ 
$config = Zend_Registry::get('config')->toArray(); 


if($this->getRequest()->getModuleName() == 'backoffice' ) { 
    $conf = $config['sessionBackoffice']; 
} else { 
    $conf = $config['sessionDefault']; 
} 


Zend_Session::setOptions($conf); 
Zend_Session::start(); 

} 
} 

插件需要先在registerPlugin堆棧,如果你需要會話一些其他的插件添加。

如果你有更好的解決方案我打開。

+0

爲此使用控制器插件絕對沒問題。 http://weierophinney.net/matthew/archives/234-Module-Bootstraps-in-Zend-Framework-Dos-and-Donts.html瞭解更多信息。 – Fge

+0

感謝您的閱讀。如果Zend傢伙說插件是迄今爲止最好的方法,我想是的。 – samuel