Laravel 5.7覆盖供应商类别并扩展旧的类别

时间:2018-11-01 08:02:49

标签: php laravel alias

因此解决方案是创建一个新的ServiceProvider。

此解决方案适用于覆盖

php artisan make:provider MyServiceProvider

扩展了供应商服务提供商(位于config / app.php中)。在该ServiceProvider中,将我的别名添加到覆盖的 register 方法

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

https://stackoverflow.com/a/47926486/10589868

现在,如何扩展覆盖的类?我尝试过:

$loader->alias('ClassParent', 'Vendor\VendorName\Class');
$loader->alias('Vendor\VendorName\Class', 'App\Vendor\MyCustomClass');
...
class MyCustomClass extends ClassParent {} // not working

1 个答案:

答案 0 :(得分:3)

您需要做的第一件事就是扩展Vendor类:

class MyCustomClass extends Vendor\VendorName\Class {}

现在,此类具有Vendor类的属性和方法以及已添加的属性和方法。

然后,您的自定义类可以成为别名:

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