覆盖 laravel 供应商函数 (InfyOmLabs/laravel-generator)?
Override laravel vendor function (InfyOmLabs/laravel-generator)?
我使用这个包:
https://github.com/InfyOmLabs/laravel-generator
我想覆盖
中的函数“generateScaffoldItems()”
https://github.com/InfyOmLabs/laravel-generator/blob/develop/src/Commands/BaseCommand.php#L104
我复制了这个功能并在自己的模块中重写,然后在 Laravel 提供程序中注册
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');
});
但是没有用。
是否有可能或可能存在更好的方法来覆盖此功能?
别名方法仅适用于 classes 或从 IOC 解析的服务。您不能指望使用类似这样的方法覆盖基数 class 进而覆盖从它派生的所有 classes。
唯一的方法是覆盖您最终要覆盖的所有命令 classes 并在 Kernel.php
中注册新命令
我使用这个包:
https://github.com/InfyOmLabs/laravel-generator
我想覆盖
中的函数“generateScaffoldItems()”
https://github.com/InfyOmLabs/laravel-generator/blob/develop/src/Commands/BaseCommand.php#L104
我复制了这个功能并在自己的模块中重写,然后在 Laravel 提供程序中注册
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');
});
但是没有用。
是否有可能或可能存在更好的方法来覆盖此功能?
别名方法仅适用于 classes 或从 IOC 解析的服务。您不能指望使用类似这样的方法覆盖基数 class 进而覆盖从它派生的所有 classes。
唯一的方法是覆盖您最终要覆盖的所有命令 classes 并在 Kernel.php
中注册新命令