2012-05-21 4 views
1

REST 기반 서비스를 제공하는 심포니 앱이 있습니다. UserBundle이라는 사용자 로그인/로그 아웃/등록 작업을 담당하는 모듈이 하나 있습니다.Symfony에서 서비스만을위한 번들을 만드는 것이 좋은 프로그래밍 습관입니까?

사용자가 기록하고 토큰 해시를 제공하면 리소스를 제공하는 다른 번들이 있습니다.

이제 요청 된 모든 리소스에 대해 클라이언트는 인증해야하는 토큰을 보냅니다. 이 인증 기능을 정확히 어디에 두어야합니까? 여러 개의 번들에 삽입 할 수있는 서비스가 필요하다는 것을 알고 있지만 그것이 자신의 번들을 만드는 것이 가장 좋습니다. 앞으로 필요할 수도있는 추가 서비스는 어떻게됩니까? 각각에 대해 번들을 만들면 내 코드 조직이 정말 못 생길 것입니다.

팁이 있습니까?

답변

2

나는 UserBundle이 인증을 다루기 때문에 서비스를 UserBundle에 넣을 것이다.

일반적으로 가장 관련성이 높은 번들에 서비스를 배치하려고합니다. 나는 또한 일반적으로 수의 진정한 제네릭 서비스, 엔티티, 컨트롤러 등을 모으는 "기본"번들을 가지고 있습니다. 이론적으로 Default로 들어가는 것은 일반적으로 다른 프로젝트에서 일반적으로 사용될 수 있으며, 거의 항상 필요한 것입니다. 둘 이상의 다른 번들. 가끔씩은 좀더 구체적이지만 여전히 일반적인 번들 (UserBundle과 비슷합니다.)에서 더 이해할 수있는 지점까지 성숙한 비트와 조각을 가지고 있습니다. 아마도 하나 이상의 프로젝트에 포함될 수있는 것으로 생각됩니다.); 이것들은 리팩터링되어 그에 따라 이름이 붙여집니다.

한 번에 한 번 "모듈"로 인식되는 모든 것에 대해 새 번들을 분할하는 데 사용되었습니다. 그러나 요즘에는 앱의 번들 수를 제한하려고합니다. 코드를 더 명확하고 쉽게 관리 할 수 ​​있도록이 코드를 발견했습니다. 특히 어떤 주어진 모듈의 "경계선"에 대한 나의 생각이 변하지 않기 때문에 나는 코드를 움직이게된다. 주로 하나의 핵심 번들에서 작업하는 것이 코드를 훨씬 더 간단하게 탐색 할 수있게 해줍니다.

+0

생각 프로세스와 번들 구성을 설명해 주셔서 감사합니다. 이것은 꽤 도움이됩니다. 건배. – jini

+1

이것은 사실입니다! 코드를 넣을 위치를 찾으려 고 노력한 후에 "번들"은 대부분 쓸모가 없다는 것을 이해합니다 ("응용 프로그램"번들에 대해 말함). 네임 스페이스가 논리적 인 "원시"넌센스 묶음이 아닌 원시 폴더에 넣어 주면 끝난다. DI 컨테이너 덕분에 번들 내부 또는 외부 서비스를 쉽게 정의 할 수 있습니다. – Florian

관련 문제