2016-07-05 2 views
1

Laravel에는 공장 서비스의 개념이 있습니까? 몇 가지 추가 구성 매개 변수를 전달할 수있는 서비스 공급자를 만들고 싶습니다.Laravel에는 공장 스타일 서비스 컨테이너 확인자가 없습니까?

나는 여드름 factory 방법을 사용할 수있는 렉스하는 데 사용 해요 :이 기능을 가지고뿐만 아니라 Angular2 같은 다른 프레임 워크의 https://github.com/silexphp/Pimple#defining-factory-services

많은,하지만 난 Laravel 워드 프로세서에서 아무것도 보이지 않아요 - 않습니다 이 기능은 IoC 컨테이너에 없습니다.

답변

1

내가 렉스를 모르겠지만, Laravel에 추가 매개 변수를 사용하여 IOC 컨테이너에서이 방법으로 서비스를 만들 수 있습니다 : 당신이 호출 코드에서 dinamically 이러한 매개 변수를 전달해야하는 경우, 게다가

App::bind(YourService::class, function($app) 
{ 
    //create YourService passing Dependency from ioc container 
    return new yourService($app->make(Dependency::class)); 
}); 

//create the instance passing $myParameter 
$instance = App::make(YourService::class, [ $myParameter ] ); 
: IOC의 컨테이너에 매개 변수를 전달 후

//bind the service accepting extra parameters 
App::bind(YourService::class, function($app, array $parameters) 
{ 
    //create YourService passing a parameter got from the calling code 
    return new YourService($parameters[0]); 
}); 

을 그리고 : 당신은 IOC 컨테이너를 수신하도록 할 수 있습니다 0

+0

Gotcha, 고마워요. 문서에서 바인드 클로저에 추가 매개 변수를 전달할 수 있다는 것을 지정하지 않았기 때문에 많은 경우에 유용합니다. – bruchowski

+0

사실입니다. 문서는 생각할 수있을만큼 너무 격렬하지 않습니다. – Moppo

관련 문제