0
A
답변
3
많은 장단점이 있으며 모두 장단점이 있습니다.
먼저 모든 서비스는 어떤 종류의 객체이기 때문에 항상 문제의 객체를 직접 만들 수 있습니다. 많은 참고 문헌을 다루어야 할 수도 있지만 가능합니다. 이것은 Dependency Injection의 아이디어를 약화시킵니다. 그래서 당신이해야하는 것이 아닙니다! 당신은 당신의 컨트롤러 내에서 클래스를 사용하는 경우
class MyClass{
public function __construct($session){
// ...
}
}
class MyContainer extends Controller{
public function SomeKindOfAction(){
$myClass = new MyClass($this->get('session'));
}
}
이 확인 될 수 있습니다
두 번째 방법은 클래스에 서비스를 주입입니다. MyClass와 같이 중첩 된 관계가 더 있으면 세션이 필요한 다른 클래스를 만들면 복잡한 문제는 물론 밀접한 결합으로 피할 수 있습니다.
가장 좋은 방법은 나만의 서비스를 만들고 거기에 필요한 것을 주입하는 것입니다. 거기에 많은 문서가 있으므로 위의 MyClass를 사용하여 간단한 예제를 제공 할 것입니다.
services.yml:
services:
my.myClass:
class: /Acme/DefaultBundle/MyStuff/MyClass
arguments: ["@session"]
는 이제 클래스 (!하면 해당 쉽게 추측 할 사람) 서비스로 그리고 당신은 당신의 컨트롤러 내에서 사용할 수 있습니다 : 이제
class MyContainer extends Controller{
public function SomeKindOfAction(){
$myClass = $this->get('my.myClass');
}
}
당신이 생성자와 방법에 대해 생각하지 않습니다 개체를 얻으려면 DI 컨테이너가 대신 해줍니다. 더 많은 것을 알고 싶다면 here을 읽으십시오.
관련 문제
- 1. Add Rol in Symfony2
- 2. Security in Symfony2
- 3. EF DbContext in WCF Services
- 4. IIS7.5 + Sharepoint Services in TFS2010의 URL이있는 문제
- 5. vbtab in reporting services 2008 표현
- 6. WCF WebHttp Services in .NET 4
- 7. Active Directory Federation Services in ruby?
- 8. symfony2
- 9. Symfony2
- 10. CAML "In"연산자에 해당하는 SharePoint Services 3 (SharePoint 2007)
- 11. Grails Services in Camel Production 경로 단위 테스트
- 12. JAR in Gradle이 포함 된 META-INF/services
- 13. symfony2 서비스 만들기
- 14. Symfony2
- 15. symfony2
- 16. Symfony2 -
- 17. Symfony2
- 18. Symfony2
- 19. Symfony2
- 20. Symfony2
- 21. Symfony2
- 22. symfony2
- 23. Symfony2 HttpException
- 24. Symfony2 서비스에 대한 이해
- 25. Symfony2 서비스 구조
- 26. Symfony2 오류
- 27. Symfony2 스코프 확장 알림 제거
- 28. 설치하거나 Symfony2
- 29. android services
- 30. Symfony2 서비스 매개 변수 생성자 오류
고맙습니다. – falinsky