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

问题描述 投票:0回答:1

我用这个包: 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');
});

但它没有奏效。 是否有可能或者可能存在更好的方法来覆盖此功能?

php laravel override vendor
1个回答
0
投票

别名方法仅适用于从IOC解析的类或服务。您不能指望覆盖基类,而是使用这样的方法覆盖从它派生的所有类。

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

© www.soinside.com 2019 - 2024. All rights reserved.