2012-07-17 2 views
1

Symfony2 라우팅 규칙에 사용되는 로케일 배열을 정의 할 수 있으므로 모든 경로에서 반복해서 반복하지 않고 각 경로마다 별도로 변경할 필요가 없습니다 지원되는 언어 목록을 변경하면 어떻게됩니까?Symfony2 i18n 라우팅 - 요구 사항 배열 정의

나는 다음과 같은 질문을 불러 일으킨다 있도록 &이에서 routing.yml, 하지만 문제의 범위를 쉽게 확장 할 수있는 대체가 빠른 검색을 수행하는 것은 매우 쉽다 알고 : 그것은 가능하다 (외부 로케일의 배열을 제공하기 위해 즉 데이터베이스에서 읽는 것)? -

대한 명확한

여기에 내가 지금 무엇을의 예입니다

page_show: 
    pattern: /{_locale}/page/{slug} 
    defaults: { _controller: myCompanymyBundle:Cms:pageShow } 
    requirements: 
     _locale: en|pl 
     slug: "[^,]+" 

news_archive: 
    pattern: /{_locale}/news/archive 
    defaults: { _controller: myCompanymyBundle:Cms:newsArchive } 
    requirements: 
     _locale: en|pl 

그리고 여기에 내가 가지고 싶은 내용의 예입니다 languages가 배열 인 경우

page_show: 
    pattern: /{_locale}/page/{slug} 
    defaults: { _controller: myCompanymyBundle:Cms:pageShow } 
    requirements: 
     _locale: languages 
     slug: "[^,]+" 

news_archive: 
    pattern: /{_locale}/news/archive 
    defaults: { _controller: myCompanymyBundle:Cms:newsArchive } 
    requirements: 
     _locale: languages 

을 외부에서 제공되는 YAML 배열 또는 PHP 배열 일 수 있습니다. 그것은 실제로 중요하지 않습니다.

이 글은 필자가 작성한 응용 프로그램의 구성을 쉽게하기에 매우 유용 할 수 있습니다. 가능한 한 많은 구성을 config.yml 파일에 추출하고 싶습니다. 예를 들어 새로운 언어를 신속하게 추가하고 비즈니스 로직 및 템플릿 레이어에서 이미 지원하려는 경우 언어 배열을 config.yml으로 수정해야합니다. 완료되었습니다.

+0

이것을 해결합니까? – vibaiher

+0

@vibaiher Nope. 솔루션을 찾고 있습니다. – XanatosLightfiren

답변

0

그 때마다 나에게 버그가 있습니다. 내가 제공 할 수있는 유일한 것은 app/config/parameters.yml에 요구 사항 매개 변수를 넣는 것입니다.

# src/App/Resources/config/routing.yml 
sport: 
    pattern: /{_locale}/{sport} 
    defaults: { _controller: App:Vote:vote } 
    requirements: { _locale: %routing_locales%, sport: %routing_sports% } 

# app/config/parameters.yml 
parameters: 
    # routing requirement regex 
    routing_sports: 'hockey|football' # available sports so far 
    routing_locales: 'de|fr' # available locales so far