Laravel如何生成模型迁移控制器的所有命令相关文件?



在这些命令之后

php artisan make:model 'FileName' -mcs

Laravel make命令文件源(Model, Controller, Migration, Seeder, Factory等)

所有基本文件是如何生成的,这些文件来自哪里?

Laravel中所有生成的东西都使用模板

如果你在控制台中运行artisan命令,你可以观察到存在一个叫做stub的部分,这个部分中唯一的命令是php artisan stub:publish

如果你运行这个命令,它会在你的应用根目录下生成一个名为stub的新文件夹,里面有一堆扩展名为。stub的文件。

您可以打开这些文件并根据需要修改或自定义它们。从现在开始,这个文件夹将是你的Laravel应用程序读取模板的地方,用于制作工匠通常做的所有东西。

这个模板包含在每个Laravel安装中,并且完全可以选择是否发布它们。事实上,有很多包专门用来制作自定义控制器或模型,就像这个来自Spatie

内部组件Laravel有两个内核

  1. app/Console/kernel中的第一个
  2. app/Http/kernel中的第二个

当你运行artisan时,Laravel引导应用程序,并运行内核控制台。这两个内核有不同的用途,实际上它们是作为独立的应用程序运行的。

关于上述文件的具体生成,我指的是不同的控制器、模型、迁移等。所有与模型相关的东西都是由一个类生成的。

class ModelMakeCommand extends GeneratorCommand{ .... }

位于IlluminateFoundationConsole命名空间下。

你可以检查那个类的代码,看看存根文件是如何被用来生成各种命令的只有与模型相关,但是还有更多,像策略,事件,工作等…

我希望这有助于回答你的问题

这是来自Laravel News的关于这个主题的更多信息

这些文件是从存根文件生成的。以下是任何一个laravel项目的存根目录位置。你可以看看这个

For Model:

供应商/laravel/框架/src/照明/基础/控制台/存根model.stub

:

供应商/laravel/框架/src/照明/基础/控制台/存根供应商/laravel/框架/src/照明/路由/控制台/存根供应商/laravel/框架/src/照明/数据库/控制台/工厂/存根供应商/laravel/框架/src/照明/数据库/控制台/种子/存根

如果你想控制这些存根,你必须应用下面的命令

php artisan stub:publish

此命令将在"stubs"上发布存根文件。项目目录中的文件夹。然后您可以根据您的需要定制。

相关内容

  • 没有找到相关文章

最新更新