2014-01-12 4 views
0

레거시 애플리케이션을 심포니로 변환하기 시작했습니다. 내 첫 번째 PHP 프레임 워크 경험은 젠드 (zend) 였고, 젠드 (zend) 1을 배우는 것이 었습니다. * 편안한 느낌이들 때까지 1 년 이상이 걸렸으니 이제는 심포니를 배우려고 노력했습니다. 나는 zend 2. *을 지나치게 복잡하게 만든다.routes.yml에서 어떻게 경로를 구성 할 수 있습니까?

zend를 사용하면 컨트롤러 클래스를 만들고 페이지를 만드는 데 익숙해졌습니다. symfony를 사용하면 루트 항목을 만든 다음 컨트롤러 클래스를 만들고 마지막으로보기를 만들어야합니다.

내 routes.yml은 100 줄이 넘고 모든 요구 사항, 방법 및 기타 등등이 있으며 프로젝트의 약 3 분의 1에 불과합니다.

이 파일을 어떻게 정리할 수 있습니까? 바로 지금 그것은 매우 혼란스럽게 보입니다.

답변

1

가 귀하의 사이트가 우려 사이트의 섹션을 나타냅니다 번들로 분할해야

AddressingBundle 
ChartBundle 
ContactBundle 
CoreBundle  // A bundle that contains all merging items (model, types, etc) 
CustomerBundle 
PaymentBundle 
PolicyBundle 
.. etc ... 

주 (사이트에서 내가 현재 일하고) : 나는 라우팅을 위해 YAML을 사용합니다. 추가 파일이 필요없는 주석이 사용 가능하지만 (가능한) 경로의 재사용 가능성이 없음을 의미합니다.

각 번들 내에는 포함시킬 수있는 라우팅 파일 세트가 있습니다. 각 번들에는 Resources/config/routing/에있는 파일 중 하나에 링크하는 Resources/config/routing.yml에있는 라우팅 파일이 있습니다.

메인 app/config/routing.yml 파일의 경우 필요에 따라 외부 (Resources/config/routing.yml) 또는 내부 (Resources/config/routing/something.yml)로 연결할 수 있습니다. 또한 접두사에 따라 다른 경로를 사용하여 동일한 경로를 여러 번 사용할 수 있습니다.

UPDATE : 번들의 아이디어는 우려를 분리하는 것입니다. 그래서 나에게는 (실리스의 구성에서 대량으로 도난당한) 싱글 엔티티 (고객) 만있는 CustomerBundle이있다. 그런 다음 하나의 엔티티 (Address)가있는 AddressingBundle을 가지고있다. 이것들은 혼자 일할 수 있지만 CoreBundle의 데이터를 사용하여 첨부됩니다. 이 방법으로 Customer 섹션을 편집해야한다면 CustomerBundle을 편집하여 같은 방식으로 상호 작용하는지 확인하십시오. 기술적으로 공적 및 사적 번들은 존재하지 않으므로 (루트 아래에 모두 있기 때문에) 라우팅 및 보안을 통해 공개하는 경로 만 있습니다.

+0

내 프로젝트에는 방문자가 액세스 할 수있는 공개 번들이 있으므로 AdminBundle과 PublicBundle이라는 두 개의 번들 만 필요하다고 생각했지만 관리자 번들 관리 작업을 처리하기위한 답변을 기반으로 더욱 많이 만들어야합니다. , 그 맞습니까? – MikeGA

+0

내 업데이트를 참조하십시오. – qooplmao

+0

우수! 당신은 나를 올바른 길로 인도했습니다. – MikeGA

관련 문제