2014-10-28 1 views
3

경로 조건 (documentation)의 표현식에서 app-config 심포니 매개 변수 (app/config/parameters.yml에 정의 됨)에 액세스하려고합니다.Symfony의 경로 조건 표현식에서 전역 매개 변수에 액세스

필자는 백분율 기호와 매개 변수 (DI here에 설명 된대로)를 통해 매개 변수를 삽입하는 것을 시도했지만 아무런 효과가 없습니다. 기능 "매개 변수"위치 (24)의 주위에 존재하지 않는 -

구문 에러을 : 내가 갖는 그러나

example_route: 
    path:  /example/{_locale} 
    condition: "request.getLocale() in parameter('locales_array')" 
    defaults: 
     _controller: "AcmeExampleBundle:Example:index" 
     _locale: %locales_default% 


가 : 여기

매개 변수 기능의 예입니다 .


라우팅 조건 식에서 매개 변수에 액세스하는 방법이 있습니까?

+0

나는'parameter' 표현 언어 기능은 컨테이너 수명주기 식에서만 사용할 수 있다고 생각합니다. 직접 기능을 등록해야 할 수도 있습니다. –

+0

@ YannEugoné 나는'parameter' 함수를 직접 등록하지 않고 방법이 있기를 바랐다. IMHO 전역 매개 변수에 액세스하는 표준 동작으로 간주되어야합니다 ... –

+1

전적으로 당신과 동의합니다. 그러나 ExpressionLanguage는 오래된 구성 요소 (> = 2.4)가 아니므로 일부 구현되지 않은 기능이 필요할 수도 있습니다. 문서를 빠르게 찾은 후 어떤 사례에서든 사용 사례를 보지 못했습니다. Symfony의'parameter' 함수를 본 유일한 부분은 DIC입니다. 그래서 ... –

답변

3

완료 및 배송 될 때까지 https://github.com/symfony/symfony/pull/12869에 PR을 열었습니다. 프로젝트의 UrlMatcher에 컨테이너 기능 제공자를 추가하고 컨테이너를 삽입해야하는 경우 자신의 확장 버전을 사용해야합니다. ExpressionLanguage #의 "variables"인수는 매개 변수와 서비스에 액세스 할 수 있도록 평가합니다.

PR을 참고하면 힌트를 얻을 수 있습니다. 나중에 필요할 경우 PR에 대해 자세히 설명하겠습니다.

1

당신은 행운입니다. (조금 늦었습니다.) % variable % 구문을 사용하는 식에서 Symfony 매개 변수에 액세스하고 있습니다. 여기

심포니 3에서 테스트하여 예를 들어, 다음과 같습니다

example_route: 
    path:  /example/{_locale} 
    condition: "request.getLocale() in ['%locales_array%']" 
    defaults: 
     _controller: "AcmeExampleBundle:Example:index" 
     _locale: %locales_default% 
관련 문제