【发布时间】:2018-06-04 04:04:20
【问题描述】:
我正在尝试覆盖(而不是扩展)供应商类。所以每当供应商类被调用(在供应商代码中),我希望它调用我的自定义类。
看来我需要在我的 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 的任何调用
【问题讨论】:
-
你应该创建自己的服务提供者扩展目标类并覆盖它。