저는 심포니 2를 사용하고 있습니다. dev와 prod의 두 가지 설정이 있습니다. 엔티티 또는 모델 내부에서 어떤 것을 사용 하는지를 알아낼 수 있는지 알아야합니다.symfony 2에서 AppKernel 환경 변수에 액세스
내가 AppKernel.php에서 발견 된이 코드와 비슷한 뭔가를 찾고 있어요:
$this->getEnvironment()
나는 잘 될 것이라고이 전화를 커널을로드 할 수 있지만 내가 할 수있는 방법을 찾을 수없는 경우 이. 이것을 살펴 본 후에 심포니 이벤트는 커널을 반환 할 수 있지만이 이벤트를 캡처 할 방법이나 위치를 모르므로 getKernel()을 호출 할 수 있습니다. http://symfony.com/doc/current/book/internals.html
는 예를 들어,이 예제를 나열 :
사용 심포니 \ 구성 요소 \ HttpKernel \ 이벤트 \ FilterControllerEvent;
public function onKernelController(FilterControllerEvent $event)
{
$controller = $event->getController();
// ...
// the controller can be changed to any PHP callable
$event->setController($controller);
}
이 코드 블록을 어디에 둘 것인지 명확하지 않습니다. 그것은 커널에 있어야한다고 생각합니다. 커널을 가지고 있다면이 문제가 발생하지 않을 것입니다.
제 질문은 커널에 설정된 서비스 또는 모델에서 'dev'또는 'prod'에 있는지 쉽게 판단 할 수 있습니다. 감사합니다.
예, 심포니 2.6을 사용하고 – ContextSwitch
을 리팩토링의 비트와 함께 잘 작동합니다 않았다, 감사합니다 그리고 나는해야만했다 : $ kernel = $ this-> container-> get ('kernel'); – Dominick