簡體   English   中英

Laravel 5.5覆蓋供應商類

[英]Laravel 5.5 Override vendor class

我試圖覆蓋(不擴展)供應商類。 因此,無論何時調用供應商類(在供應商代碼中),我都希望它調用我的自定義類。

看起來我需要在App/Providers/AppServiceProvider為該類添加別名

我試過這個:

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

但這沒有做任何事情。

我可以讓我的班級注冊罰款:

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

但是這會失敗,因為構造函數依賴於那時不可用的其他變量。 我真的只需要應用程序覆蓋對App\\Vendor\\MyCustomClass Vendor\\VendorName\\Class任何調用

所以解決方案是創建一個新的ServiceProvider

php artisan make:provider MyServiceProvider

這擴展了供應商服務提供商(在config / app.php中找到)。 在該ServiceProvider中,在重寫的Register方法中添加我的別名

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM