2017-12-21 1 views
0

공급 업체 클래스를 재정의 (확장하지 않음)하려고합니다. 따라서 벤더 클래스가 호출 될 때마다 (벤더 코드 내에서), 커스텀 클래스를 호출하기를 원합니다.Laravel 5.5 공급 업체 클래스 재정의

$loader = \Illuminate\Foundation\AliasLoader::getInstance(); 
$loader->alias('Vendor\VendorName\Class', 'App\Vendor\MyCustomClass'); 

을하지만 아무것도하지 않습니다 나는이 시도했습니다 내 App/Providers/AppServiceProvider

에서 클래스의 별명을 할 필요가 같은

는 것 같습니다.

내 클래스는 고급 등록받을 수 있습니다

$this->app->register(
     'App\Vendor\MyCustomClass' 
    ); 

그러나 생성자가 그 시점에서 사용할 수없는 다른 변수에 relys가로이 실패합니다. 말 그대로 너무 솔루션 (구성/app.php 내에서 발견) 공급 업체의 서비스 제공을 확장 새로운 ServiceProvider

php artisan make:provider MyServiceProvider 

를 작성했다 App\Vendor\MyCustomClass

+2

당신은 대상 클래스를 extendind하고 덮어 자신의 서비스 공급자를 만들려면해야 내에서 내 별명을 추가합니다. – felipsmartins

답변

0

Vendor\VendorName\Class에 대한 호출을 무시하는 응용 프로그램이 필요합니다. 그 ServiceProvider 내에서 오버라이드 (override) Register 방법

$loader->alias('Vendor\VendorName\Class', 'App\Vendor\MyCustomClass'); 
관련 문제