[英]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.