MongoDB를 사용하여 세션을 저장하려고하는데 \Mongo
인스턴스에 대한 참조를 가져와야합니다.Doctrine ODM과 MongoDbSessionHandler간에 Mongo 인스턴스를 공유하는 방법은 무엇입니까?
하지만 분명히 서비스로 선언되지 않았습니다. 대신, 교리는 래퍼에서 그것을 만듭니다.
그럼 어떻게해야합니까? 나는이 시도 :
services:
mongo.connection:
class: MongoDoctrine\MongoDB\Connection
factory_service: doctrine.odm.mongodb.document_manager
factory_method: getConnection
mongo:
class: Mongo
factory_service: mongo.connection
factory_method: getMongo
을하지만 경우에 따라서는 null을 반환하고, 그것은 또한 내가 세션과 함께 할 수있는 뭔가가 생각하는 로그에 REQUEST_ID을 추가 내 로거 처리기와 충돌.
아이디어가 있으십니까?
전 처리기를 사용하여 모노 그래프를 사용할 때 여전히 순환 참조를 얻지 만 작동합니다. – ChocoDeveloper
자, 이제 SessionRequestProcession에'@service_container'를 주입하여'@ session'을 주입하는 대신이 문제를 해결했습니다. 이 방법은 필요할 때까지 인스턴스화되지 않습니다. 그때까지는 이미 존재할 것이고 순환 참조를 피할 것입니다. 나는 우리가 컨테이너를 주입하지 않아도된다는 것을 안다.하지만 우리가 사용할 수 있도록 Mongo를 서비스로 선언하지 않는다면 다른 해결책은 보이지 않는다. – ChocoDeveloper
올바르게 이해하면 Connection 서비스가 Monolog에 따라 옵션으로 제공됩니까? 순환 참조의 경우 컨테이너를 주입하고 지연 참조가 필요하지 않은 서비스를 반입하는 것은 완벽합니다. Symfony2는 필요에 따라 여러 핵심 클래스에서 내부적으로이를 수행합니다. – jmikola