扩展Laravel的核心组件

时间:2015-08-14 10:41:54

标签: php laravel laravel-5

在我的项目中,需要扩展laravel的发电机组件。我需要它允许放入路径选项,以便在用户指定的位置生成文件。我需要为所有生成器 - 从控制器到请求等等。

非常感谢任何我应该开始的提示,谢谢

更新: 我发现我必须修改Illuminate\Console\GeneratorCommand和特定getPath方法。我该如何覆盖这个类?

基本上,所有核心生成器都扩展了这个类,所以我需要它们以某种方式扩展我的新类。

1 个答案:

答案 0 :(得分:1)

您无法更改这些命令扩展的类。

您有4个选项:

  1. GeneratorCommand 使用从容器中获取的 Filesystem 对象来保存文件。您可以使用自己的类扩展 Filesystem 并覆盖其方法,以便它们也可以在您需要的位置写入。请注意,这会影响使用此文件系统服务的所有其他代码。

  2. 使用您自己的类扩展所有 XYZMakeCommand 类,设置不同的命令名称(例如my:make-controller)和内部覆盖 getPath()方法,例如:

    class MyControllerMakeCommand extends ControllerMakeCommand {
      protected $name = 'my:make-controller';
    
      protected function getPath($name) {
        //return the path you need
      }
    }
    
  3. 使用默认的Laravel路径

  4. 执行命令后,将生成的文件复制到您想要的位置