2011-10-04 3 views
1

2 개의 모듈에 대해 다른 세션 구성을 얻으려고합니다. 내 응용 프로그램의 INI에서Zend Framework 특정 모듈 세션 구성

내가 좋아 설정된 모듈이 있습니다

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 

하지만를 위해 난 여전히 내 기본 검색 구성이

다른 모듈에 대해 다른 세션을 얻는 가장 좋은 방법은 무엇입니까?

감사

답변

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 녀석이 Plugins가 지금까지는 가장 좋은 방법이라고 말한다면, 나는 그것이 맞을 것이라고 생각합니다. – samuel