2016-06-12 2 views
-2

최근에 Symfony 프레임 워크를 일부 프로젝트에서 사용하고 싶습니다. 그러나 기본적으로 각 컨트롤러 위에있는 주석 인 "주석"으로 인해 라우팅이 사용하기에 매우 어색하다는 것을 알았습니다 방법.Symfony routing - annotations

routes.php 파일을 만들어 라우팅을 덮어 쓰고 이러한 주석을 완전히 비활성화 할 수 있습니까? 하나의 파일에 모든 경로가 있으므로 훨씬 유연하고 유지 관리가 편리합니다.

+1

기타 매우 편리 라우팅 주석을 고려해야 제거해야합니다. – cilefen

+0

이 방법을 사용하기 전에 필자는 매우 큰 프로젝트와 주석에서 라우팅을 위해 annotations/yml을 모두 사용했지만 실제로는 PITA가 적습니다. – Richard

+0

단일 PHP 파일 (개인 선호 및 유지 관리가 가능한 IMO)에서 경로를 관리하는 많은 프레임 워크를 알고있는 Symfony는 전체 목적을 달성하지 못했던 것처럼 보였습니다. 한 가지 예는 입력 사이트의 경로를 변경하려는 경우 응용 프로그램의 상태에 실제로 영향을 미치는 주석은 말할 것도없고 모든 경로를 한 위치로 안내 할 수 있습니다. 그 말은 목적이 아니 었습니다 – mhvvzmak1

답변

2

경로 정의에 xml, yaml, php 또는 annotation을 사용할 수 있습니다. 당신은 app/config/routing.php을 만들

framework: 
    router: 
     resource: "%kernel.root_dir%/config/routing.php" 

framework: 
    router: 
     resource: "%kernel.root_dir%/config/routing.yml" 

에서 app/config/config.ymlthis line을 변경하고 app/config/routing.yml

+0

"routing.yml"파일이 존재하지 않습니다 (C : \ inetpub \ wwwroot \ sym \ demo \ app/config, C : \ inetpub \ wwwroot \ Sym \ demo \ app)./Resources)를 routing.yml (C : \ inetpub \ wwwroot \ sym \ demo \ app/config/routing_dev.yml에서 가져옵니다)에 저장합니다. – mhvvzmak1

+0

재미 있습니다 ... 어떻게 응용 프로그램을 만들었습니까? 나는 symfony 데모를 사용했다고 추정하지만, 파일도 존재합니다 (https://github.com/symfony/symfony-demo/tree/3ca2b94f387ca4a4206ccc667ae2d4e10fb75dae/app/config) ... 당신은'routing_dev를 수정해야합니다. yml'도'routing.php'를'_main' 리소스로 가져 와서 적절한 dev 환경을 갖도록합니다. – 1ed

+0

네, 비어있는 새 응용 프로그램을 만들었습니다. dev.yml에서 _main을 변경해야했습니다. – mhvvzmak1

2

주석 (라우팅 용이지만 다른 구성 용)은 Symfony에서 절대적으로 필수는 아닙니다. 문서에서 볼 수 있듯이 YAML을 사용하여 경로를 정의 할 수 있습니다. 어쨌든 특수 효과를 사용하는 것이 가장 좋은 방법이며이를 사용하는 것이 좋습니다. 왜냐하면 어떤 경로가 작업에 묶여 있는지를 즉각적으로 파악할 수 있기 때문입니다. debug:routing 명령으로 항상 모든 경로 목록을 얻을 수 있습니다.