2017-05-11 10 views
2

부터 Command\ContainerAwareCommand 클래스에 매개 변수가 필요합니다. 나는 거기에 $this->getParameter()을 볼 수 없습니다.컨트롤러 외부에서 parameters.yml에서 매개 변수를 검색하는 방법은 무엇입니까?

parameters.yml 컨트롤러 외부에서 매개 변수를 검색하는 간단한 방법이 있습니까?

보다 간단

: 쓰기 "친숙한 구성"및 config.yml에 매개 변수 foo 넣어, 다음 DependencyInjection\Extension::load()에 PARAM 검색하고 설정할 : $container->setParameter('foo', $foo)를, 그리고 마지막으로 Command\ContainerAwareCommand에서 그것을 $this->getContainer()->getParameter('foo')를 검색?

답변

5

당신은 단순히 통해 컨테이너에 액세스 할 수 있습니다

... extends ContainerAwareCommand 

... 
$this->getContainer()->getParameter('my-params'); 

편집 :

당신은 사용자 정의 매개 변수는 다음 예와 주요 config.yml 파일에서 가져올 정의 할 수 있습니다 :

config.yml

imports: 
    - { resource: parameters.yml } 
    - { resource: security.yml } 
    - { resource: services.yml } 
    - { resource: "@ApplicationBundle/Resources/config/parameters.yml" } 

도움이 되길 바랍니다

+0

보너스 포인트가없는 보너스 : AppBundle을 재사용 할 수있게하려면'src/AppBundle/Resources/config /'에 parameters.yml을 저장할 수 있습니까? 이 파일이 자동으로 가져 왔습니까? 왜냐하면 나는 Symfony 예외를 가지고 있습니다.''foo ''매개 변수를 정의해야합니다.'' – user6827096

+1

안녕하세요 @ user6827096 물론, 당신은 어느 곳에서나 매개 변수를 정의한 다음 가져올 수 있습니다. 내 대답을 업데이 트,이 도움을 희망 – Matteo

+0

감사합니다 .............. – user6827096