2012-04-13 9 views
0

Symfony2 서비스를 이해하는 데 어려움을 겪고 있습니다. 나는 물건을 도처에 많이 읽었다 (여기의 약간을 포함하는 것) 그러나 누구나는 그것을 완전히 설명하는 것처럼 보인다.Symfony2 서비스 구조

번들 A와 분리 된 번들 B가 있다고 가정합니다. A 번들에 B 기능을 사용할 수있게하려고합니다. A가 서비스 컨테이너에 B를 주입하여 A가 그것을 사용할 수있게하려고합니다.

어떤 번들에 Services 디렉토리가 있어야합니까? 어느 것이 구성 파일을 가져야합니까? 둘 다 필요하다면? 그리고 Extension은 어디로 간다? 왜?

답변

1

먼저이 두 질문에 내 대답을 읽어

내가 하나 개의 번들을 가진 만 제안, 응용 프로그램 특정 번들에 대해 얘기하고 그것을 밖으로 유지하십시오. 그런 다음 여러 가지 방법으로 서비스를 등록 할 수 있습니다 :

config.yml에서 직접
  • ,
  • JMSDiExtraBundle에서 주석을 통해 당신의 AppBundleextension class, 또는
  • 만들기 - 이것이 내가 개인적으로 선호하는 것입니다.
+0

정보 주셔서 감사합니다. – phasmatis

3

번들 B는 services.xml 파일을로드하기 위해 확장이 필요합니다.

번들 B는 서비스를 정의하기 위해 services.xml 파일에 항목이 필요합니다.

번들 B에는 원하는 기능을 제공하는 서비스 클래스가 포함 된 서비스 디렉토리가 있습니다.

번들 A에는 특별한 것이 필요하지 않습니다. 번들 B에 노출 된 서비스에 액세스하려면 컨테이너를 사용할 수 있습니다. 서비스 ID를 알아야합니다.

몇 가지 서비스를 만들기 전까지는 혼란 스럽습니다.

+0

고마워, 지금은 이해가된다. 비록 내가 아직 테스트하지는 않았지만 이것은 가장 효과적인 설명이다 (그것이 맞다면) 나는 읽었다. – phasmatis