覆盖laravel供应商功能(InfyOmLabs / laravel-generator)?

时间:2018-09-16 07:20:51

标签: php laravel override vendor

我使用了这个包裹:
https://github.com/InfyOmLabs/laravel-generator

我想在内部覆盖函数“ generateScaffoldItems()
https://github.com/InfyOmLabs/laravel-generator/blob/develop/src/Commands/BaseCommand.php#L104

我复制了此函数,并在自己的模块中重写,然后在Laravel Provider中注册

MyOverrideClass.php

public function generateScaffoldItems()
{
    //override...
}

MyOverrideProvider.php

public function register()
{
    //
    $this->app->booting(function() {
    $loader = AliasLoader::getInstance();
    $loader->alias('InfyOm\Generator\Commands\BaseCommand','App\Overrides\MyOverrideClass');
});

但是没有用。
是否有可能或者更好的方法来覆盖此功能?

1 个答案:

答案 0 :(得分:0)

alias方法仅适用于从IOC解析的类或服务。您不能期望覆盖基类又会使用类似的方法覆盖从基类派生的所有类。

唯一的方法是覆盖您最终要覆盖的所有命令类,并在Kernel.php中注册新命令