2014-02-26 3 views
1

마이그레이션 용도로 한 프로젝트에서 ZF1 및 ZF2 모듈을 사용합니다. 물론 ZF1 모듈은 Bit_Session_Namespace로 고정해야하지만 ZF2 모듈은 Zend \ Session \ Container를 사용해야합니다. 그러나이 두 가지 구성 요소를 사용하여 동일한 세션 데이터로 작업하는 데 어려움이 있습니다.ZF2 및 ZF1 병렬 세션 호환성

stated in the docs으로, 저는 ZF1 모듈로 작업 할 때 ZF2를 초기화합니다. 이것은 잘 작동합니다. ZF1 모듈을 사용하여 응용 프로그램에 로그인하면 ZF1 및 ZF2 모듈이 모두 세션 데이터에 액세스 할 수 있습니다.

이미 사용자 모듈을 마이그레이션 했으므로 ZF2 모듈을 통해 로그인 할 수 있습니다. 갑자기, 세션 데이터 (데이터베이스에 저장 됨)는 일반 배열 대신 ArrayObject로 저장됩니다. 이제는 Bit_Session_Namespace를 사용하여 세션 데이터를 읽을 수 있지만 세션 값을 조작하면 전혀 영향을주지 않습니다.

내 질문 : 어떤 구성 요소가 세션을 초기화했는지에 관계없이 ZF1 및 ZF2 구성 요소에서 세션에 액세스하려면 어떻게해야합니까? ZF2 세션을 다르게 구성해야합니까? ZF2 모듈에서 작업 할 때 ZF1을 초기화해야합니까? 어떤 조언을 해줘서 고마워, 난 정말 갇혀있어! 코드 스 니펫이 필요하면 주석 만 삭제하십시오.

답변

0

갑자기 세션 데이터 (데이터베이스에 저장 됨)가 일반 배열 대신 ArrayObject로 저장됩니다.

ZF2에 세션을 저장하는 대체 전략이 있습니다 (SessionArrayStorage). 세션에 직접 액세스하는 타사 라이브러리로 작업 할 때 권장됩니다. 귀하의 경우, ZF1은 타사 라이브러리입니다.

+0

답장을 보내 주셔서 감사 드리며 늦어서 답변드립니다. 불행히도 도움이되지 않습니다. 문제는 그대로 유지됩니다. 또한 SessionArrayStorage는 AbstractSessionArrayStorage를 상속하고 클래스 주석은 다음과 같이 말합니다. "$ _SESSION 수퍼 글로벌을 속성 액세스, 메타 데이터 저장, 잠금 및 불변성을 허용하는 ArrayObject로 바꿉니다." 이것은 Bit_Session_Namespace가 ArrayObject에서 작동하지 않기 때문에 내가 찾고 있지 않은 것입니다. 아마 사용자 정의 저장 장치를 작성해야합니다 ... – nick