【问题标题】:Override laravel vendor function (InfyOmLabs/laravel-generator)?覆盖 laravel 供应商功能(InfyOmLabs/laravel-generator)?
【发布时间】:2019-02-20 10:37:57
【问题描述】:

我用这个包:
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 overriding vendor


    【解决方案1】:

    别名方法仅适用于从 IOC 解析的类或服务。你不能指望重写一个基类,然后用类似的东西重写从它派生的所有类。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 2018-06-04
      • 2019-04-05
      • 2020-07-05
      • 2021-04-22
      • 1970-01-01
      • 2015-08-09
      相关资源
      最近更新 更多