2011-12-01 5 views
1

SESSION 또는 다른 소스에서 매개 변수를 전달하는 방법이 있습니까? 내 번들 구성에서 이런 일이 :Symfony2 - 서비스에 전달할 매개 변수

<service id="class" class="MyClass"> 
    <argument key="lang">%class.lang%</argument> 
</service> 

, 그것은 세션 수 있습니다 내가이 의존성 주입에 확장에서 매개 변수를 전달하여 수행 할 수 있다는 것을 알고 있지만이 변수의 소스에 대한 모르겠지만 어떤 경우에는 데이터베이스에서 읽을 수 있습니다. 난 단지 매개 변수가 세션에서 전달되어야 DependencyInjection을 하드 코드하고 싶지 않습니다.

나는 또한 app config에서 매개 변수를 전달할 수 있음을 알고 있지만 응용 프로그램의 일부 기능을 수행 한 후에 변경할 수있는 방법이 있습니까?

답변

5

해당 매개 변수가 구성에 의해 수정되지 않은 경우 (즉, 일부 응용 프로그램 논리에 따라 달라지는 경우) 특정 클래스에 넣고 클래스를 특정 서비스로 등록합니다 (관심있는 값을 결정하는 데 필요한 모든 서비스를 주입 함). 그런 다음 그 값이 필요한 곳에 특정 서비스를 주입하십시오.

관련 문제