서비스 컨테이너가 Laravel에서 작동하는 방식을 더 잘 이해하려고합니다. 그래서 나는 서비스가 당신이 Laravel에 의해 설치하고자하는 것을 갖기 위해 사용된다는 것을 알고 있습니다, 그렇죠?컨트롤러에서 서비스 공급자를 확인하는 방법?
LDAP PHP 기본 제공 함수를 사용하여 간단한 예제를 만들려고합니다. 내 AppServiceProvider.php
이 있습니다
public function register()
{
$this->app->bind('ldap', function() {
$conn = ldap_connect(env('LDAP_HOST'));
ldap_bind($conn, env('LDAP_BIND'), env('LDAP_PWD'));
return $conn;
});
}
그런 다음 내 컨트롤러에서 나는
$ldap = resolve('ldap');
에 노력하고있어하지만 작동하지 않습니다, 그것은
resolve
이 존재하지 않는다고 말했습니다. 이미
$this->app->make
으로 시도했습니다. 내 LDAP 연결을 다시 얻으려면 어떻게해야합니까?
당신은'$ this-> app-> make'를 사용하고 서비스 제공자 설정 파일'config/app.php'에 ldap을 추가해야한다고 생각합니다. https://laravel.com/docs/5.3/providers – bassxzero
이 코드 블록이 이미 서비스 공급자를 등록하고 있지 않습니까? AppServicePRovider는 이미 기본적으로로드되어 있습니다. –
그 방법은 app 인스턴스에 바인딩을 등록하기위한 것이고, 이미 서비스 공급자의 인스턴스가 있어야합니다. 코드를 보지 않고 설명하기는 어렵습니다. 간단히 말해서 Laravel이 부트 스트랩하는 동안 서비스 제공 업체를 만들지 만, 만들려는 서비스를 알려줘야합니다. – bassxzero