내 심포니 2 응용 프로그램에서 서비스로 ResultFactory 클래스를 사용하고 싶습니다 :심포니 공장 클래스
내 결과 팩토리 클래스는 BaseResult 인스턴스를 생성 할 책임이 있습니다. get factory 메소드에 전달 된 유형에 따라 ResultFactory는 올바른 ResultObject를 작성합니다.
class ResultFactory
{
protected $translator;
public function __construct(Translator $translator)
{
$this->translator = $translator;
}
public function get($type, $param)
{
$instance = null;
switch ($type) {
case 'Type1':
$instance = new Type1Result($param);
break;
case 'Type2':
$instance = new Type2Result($param);
break;
}
return $instance;
}
}
내 질문은 다음과 같습니다 : 내 ResultObject에서 서비스를 사용하고자하는
여기에 코드가 될 수있는거야. 이 서비스를 내 ResultObject에 어떻게 주입합니까?
감사합니다.
반환하기 전에 결과 객체에 서비스를 주입하는 방법을 명확하게 설명해주십시오. setter- 또는 contructur-injection ...? '$ instance-> setService ($ service)'또는'새로운 인스턴스 ($ service, $ param)'? 당신이 이미 번역기 서비스를 주입하고있는 것처럼 당신이 원하는 것이 무엇인지 분명하지 않습니다 ... 당신이 주입하기를 원하는 서비스를 공장에 대한 추가적인 인수로 리턴 객체에 전달하고 통과시키는 것이 어떨까요? – nifr
나는 서비스를 주입하기 위해 어떤 방법을 사용하고 싶은지 모른다. Result 클래스에 일부 서비스를 사용할 수 있기를 원합니다. 나는 그것이 올바른 방법 이었는지 확신 할 수 없었고, 그것을 인스턴스 생성자에 인수로 전달하여 그것을 기본 클래스에 저장했다. 감사! – user3544352