2017-09-28 3 views
-1

Symfony에서 서비스를 만들고 일부 클래스의 인스턴스가 필요할 때 매개 변수를 서비스로 전달하거나 함수 서비스 내에 새 인스턴스를 만들 수 있습니다. 일부 Classes 생성자가 클래스를 parametre로 전달할 때 parametres가 필요하지 않기 때문에이 질문을합니다.symfony 서비스 (모범 사례) 내에서 새로운 클래스 인스턴스를 인스턴스화하기

+0

를 SOLID 개발 원칙과 particulary를 참조하십시오. 팩토리를 서비스로 정의하고 삽입하십시오. 그런 다음 서비스가 필요하면 다음과 같이하면됩니다. $ myService = $ myServiceFactory-> create ($ paginator); – Cerad

답변

2

당신은 그들을 서비스중인 매개 변수로 전달합니다. 귀하의 직무를 최대에 주입하고 귀하의 서비스를 직접 인스턴스화하지 않도록하십시오.

는 이런 종류의 공장을 사용하는 것이 대부분의 경우이 경우 의존 관계 역전 원칙

enter image description here

+0

하지만 somes 서비스 생성자는 교리 문 전환 클래스와 같은 매개 변수가 필요합니다. – spinoza

+1

당신은 또한 당신의 services.yml에 그것들을 삽입 할 수 있습니다. –

+0

doctrine Paginator 클래스는 클래스를 인수로 전달할 때 가지고있는 쿼리 매개 변수가 필요합니다. – spinoza