2010-05-24 4 views
4

symfony 프로젝트에서 routing.yml의 매개 변수에 밑줄을 구분 기호 으로 사용하고 싶습니다.routing.yml에서 segment_separators로 사용되는 밑줄

URL 예 : /article/lorem-1111_45.html

routing.yml

rule_sample: 
url:  /article/:info-:datePublished_:id.html 
param: { module: cms, action: test } 
options: 
    segment_separators: ['-', '/', '.', '_'] 
requirements: 
    info: ^([A-Za-z0-9\-]+)$ 
    datePublished: \d+ 
    id: \d+ 

이 코드 나던 작동합니다. 다음과 같은 오류가 있습니다 : "/article/:info-:datePublished_ : id.html"경로를 ": id.html"근처에서 파싱 할 수 없습니다.

누구나이 규칙을 구현하는 방법을 알고 있습니까?

+0

+1 : 만족스럽게 해결할 수 없었습니다. 솔루션에 관심이 있습니다. 그러나 밑줄에 많은 문제가 있어서는 안되지만 대시 (-)는 더 많은 SEO 친화적 인 것으로 간주됩니다. – Tom

답변

0

저는 이것이 심포니의 버그라고 생각합니다.

내가 실패

1

내가 sfRoute.class.php의 버그라고 생각 심포니 프로젝트에 테스트와 bug report를 제출 테스트를 만들었습니다. 'variable_regex'=> '[\ w \ d _] +' PHP에서 \

\ ""(_)을 포함한 영숫자와 일치하며 마지막 밑줄은 일치합니다. 이 라인을 다음과 같이 변경하려고 시도했습니다 :'variable_regex'=> '[\ A-Za-z \ d] +'

이제 밑줄을 구분 기호로 사용할 수 있습니다.

나는 이것을별로 테스트하지 않았다. 이 기능이 다른 기능과 충돌하는지는 모르지만 (Symfony 프로그래머가이 버그를 시작할 수있는 라인 일 수 있습니다.)