내 서비스를 만들 때마다 매번 객체가 생성되는 것처럼 보입니다.Symfony 2 dev 모드의 각 요청마다 컨테이너가 다시 빌드됩니까
서비스 :
services:
plbcache:
class: Robusta\PlbBundle\Cache\LruCache
arguments: [10, %timeout%, %enableCache%]
클래스 : 내 캐시 개체마다 다시하면 내 개체가 캐시에있는 경우
class LruCache {
public function __construct($capacity=10, $timeout=-1, $enabled=true) {
echo "creating the cache"; // Appear at each request
$this->capacity = $capacity;
$this->timeout = $timeout;
$this->enabled = $enabled;
}
}
은 물론, 내가 테스트하는 지금 문제가 있습니다.
Symfony의 서비스 컨테이너는 싱글 톤이며 기본적으로 싱글 톤을 제공합니다. 프로토 타입이나 클라이언트 세션에 맞게 구성 할 수 있다고 생각했습니다. 따라서 각 요청 후에 동일한 서비스 객체를 제공해야합니다.
컨테이너가 dev 환경에서 다시 작성되었음을 문서에서 확인해야합니다. 내가 뭔가를 놓쳤습니까, 아니면 코드가 잘못 되었습니까? dev 캐시 모드에서 캐시 개체를 다시 작성하지 못하도록하려면 어떻게해야합니까?
왜 세션을 사용 하시겠습니까? 모든 요청은 적어도 하나의 객체와 관련이 없으므로 때마다 객체를 다시 작성해야합니다. 비즈니스 논리가 다른 방식으로 작동하는 경우 직접 처리해야합니다. – DonCallisto
Symfony의 서비스 컨테이너는 단일 개체입니다. 따라서 각 요청 후에 동일한 서비스를 제공합니다. –