我用这个包: 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');
});
但它没有奏效。 是否有可能或者可能存在更好的方法来覆盖此功能?
别名方法仅适用于从IOC解析的类或服务。您不能指望覆盖基类,而是使用这样的方法覆盖从它派生的所有类。
唯一的方法是覆盖您最终要覆盖的所有命令类,并在Kernel.php中注册新命令