2014-04-12 1 views
1

똑같은 6 가지 방법으로 4 개의 REST 컨트롤러가 있습니다. 그들 사이의 유일한 차이점은 그들이 사용하고있는 엔티티입니다.코드 반복 방지 우수 사례 (symfony2)

저는 이러한 방법으로 몇 가지 선행 추상 컨트롤러에 대해 생각해 보았습니다. 물론 하나의 속성은 물론 실체가 될 것입니다. 각 REST 컨트롤러는이 추상 컨트롤러를 확장하여이 속성 만 덮어 씁니다.

이것은 제 생각이지만, 특히 Symfony2에서 가장 좋은 방법인지는 확실하지 않습니다.

+0

나는 당신이 그것을 할 수 있고 모범 사례는 아니지만'Symfony' tho에 익숙하지 않다고 생각합니다. –

+0

베스트 프랙티스는 "모범 사례"에 순수한 번들을 가지고 있더라도 최상의 실천과 같이 개선 될 것입니다. 가능한 한 최선을 다해 번들 \ app을 만든 다음 시간이 지남에 따라 알고있는 것을 향상 시키십시오. 완전히 이해하지 못하거나 믿지 않는 모범 사례에 전적으로 의존하지 마십시오. – qooplmao

+0

비 추상적 인 부모 클래스를 사용해 보셨습니까? –

답변

0

나는 Symfony2와 FOSRestBundle로 작업하고있는 프로젝트에서 우리는 똑같은 상황에 처해있다.

우리는 FOSRestController를 확장하고 다른 모든 컨트롤러에 의해 확장되는 기본 컨트롤러 클래스로 모든 것을 얻을 수있었습니다. sensio/framework-extra 번들을 사용하는 경우 단일 엔터티를 가져 오기 위해 코드를 작성할 필요조차 없습니다. 우리는 또한 MySQL과 Elastic Search 모두에서 하이브리드 구성을 사용하고 있으며, 기본 컨트롤러 클래스는 ACL 정보를 포함하여 ElasticSearch를 쿼리하여 로직이 기본 컨트롤러에 대부분 있음을 쿼리하는 메서드를 구현합니다.