2011-11-13 2 views
3

MongoDB를 사용하여 Symfony 2에 세션을 저장할 수 있습니까? 그렇다면 어떻게?MongoDB를 사용하여 Symfony 2에 세션을 저장할 수 있습니까?

+1

귀하의 출발점은 여기에있을 수있는 것처럼

는 config.yml의

홈페이지 구성이 보인다 -set-save-handler.php –

+1

@ItayMoav 심포니 2와 어떤 관련이 있습니까? sf2가 세션을 위해 그것을 사용합니까? – HappyDeveloper

+1

이 글은 시작일뿐입니다. 나는 후드 아래의 Symphiny가 $ _SESSION도 사용하고 있음을 확신한다. –

답변

3

나는 이것을 Mandango와 함께했지만, Doctrine의 MongoDB ODM 또는 그 유사 물을 사용하기 위해 쉽게 변환 할 수 있어야한다. 나는 출발을하지만, 테스트되지 않았으며 나는 그것이 몽고 인스턴스 ;-) 내가 자리 또는 예제 코드를 추가 한에 다른 무언가를 전달해야 매우 확신 적절한 예 :

public function __construct(\Mongo $con, ...) 

나는 확실히 바꿀 필요가 있습니다 :-)

코드가 Github에서 https://github.com/richsage/Symfony2-MongoDB-session-storage에 있습니다. - 작동하게되면 홍보가 환영합니다!

본질적으로 NativeSessionStorage 클래스를 확장하고 Mongo 데이터베이스에서 적절한 경우 세션 레코드 삽입, 검색 및 업데이트를 처리하도록 다양한 메서드를 조정했습니다. 클래스는 서비스로 구성되어야하며 적절한 종속성이 추가 된 다음이 서비스가 세션 구성에 전달됩니다. Et woila :-)

+0

와우 감사합니다, 나는 코드를 이해할 수 있기를 바랍니다. 내가 집에 갈 때 나는 그것을 조사 할 것이다. – HappyDeveloper

8

나는 그 질문에 정말로 답이 없다고 생각하기 때문에. Symfony 2.1에서는 HttpFoundation 구성 요소에 포함 된 MongoDbSessionHandler를 사용하여 MongoDB에 세션 데이터를 저장할 수 있습니다.

session.handler.mongo: 
    class: Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler 
    arguments: [@mongo, %mongo.session.options%] 

mongo.connection: 
    class: MongoDoctrine\MongoDB\Connection 
    factory_service: doctrine.odm.mongodb.document_manager 
    factory_method: getConnection 
    calls: 
     - [initialize, []] 
mongo: 
    class: Mongo 
    factory_service: mongo.connection 
    factory_method: getMongo 

mongo.session.options: 
    database: app_session 
    collection: session 

framework: 
    session: 
     handler_id: session.handler.mongo 

더 여기 읽기 : http://php.net/manual/en/function.session : http://blog.servergrove.com/2012/11/05/storing-sessions-in-mongodb-with-symfony2/

+0

문제는 이것으로 문제가 해결되었지만 session.handler.mongo, mongo.connection 및 mongo가 서비스 섹션에 있어야하고 mongo.session.options가 매개 변수 섹션에 있어야한다는 작은 설명을 추가하고 싶습니다. –

관련 문제