在我的项目中,需要扩展laravel的发电机组件。我需要它允许放入路径选项,以便在用户指定的位置生成文件。我需要为所有生成器 - 从控制器到请求等等。
非常感谢任何我应该开始的提示,谢谢
更新:
我发现我必须修改Illuminate\Console\GeneratorCommand
和特定getPath
方法。我该如何覆盖这个类?
基本上,所有核心生成器都扩展了这个类,所以我需要它们以某种方式扩展我的新类。
答案 0 :(得分:1)
您无法更改这些命令扩展的类。
您有4个选项:
GeneratorCommand 使用从容器中获取的 Filesystem 对象来保存文件。您可以使用自己的类扩展 Filesystem 并覆盖其方法,以便它们也可以在您需要的位置写入。请注意,这会影响使用此文件系统服务的所有其他代码。
使用您自己的类扩展所有 XYZMakeCommand 类,设置不同的命令名称(例如my:make-controller)和内部覆盖 getPath()方法,例如:
class MyControllerMakeCommand extends ControllerMakeCommand {
protected $name = 'my:make-controller';
protected function getPath($name) {
//return the path you need
}
}
使用默认的Laravel路径
执行命令后,将生成的文件复制到您想要的位置