如何在Laravel中自定义 Artisan 命令

收藏
0 39
SuperMan   ❀
SuperMan ❀ 2020-02-12 10:29:06
付费话题:0 积分
ITKEE社区V3.0.1版本更新,补丁包下载了解详情 , 获取ITKEE社区版本,快速授权了解详情

Laravel 打包了许多命令,以帮助开发人员加快开发流程。其中包括一些 php artisan serve , php artisan make:model 等。

在我的 Laravel 项目中,我使用一种结构来帮助我将不同的层和逻辑彼此分开。

用我技术主管的话说,“你的控制器应该尽可能少地工作”。

所以在我的大多数项目中,创建了所有逻辑的服务类和处理数据库的所有连接的存储库类。

所以简单来说,如果需要任何逻辑则控制器调用服务类,如果需要连接数据库则服务类调用存储库

不管怎样,在我目前的项目中,我决定编写一个命令来帮助我生成服务类和存储类来加速我的工作速度。

新建命令

首先,你必须了解 Laravel 使用 stub 文件作为模版,并替换模版内的令牌来生成自定义类或者文件。

现在让我们来新建一个自定义的命令

1. 新建命令#

执行:

$ php artisan make:command AddService

此命令将在 app\Console\Commands 目录下生成 AddService.php 文件。


在命令执行的同时,AddService 文件生成在 Commands 目录。

2. 存根文件

创建一个 dummy 存根文件,命名为 services.stub,放在 app/Console/Commands/Stubs/**service.stub** 目录下。


服务存根创建完毕。

3. services.stub

将以下内容添加至 services.stub 文件中

4. 编辑命令#

现在在 commands 文件夹目录下打开 AddService.php 文件,并替换以下内容

5. 进行测试

现在我们可以执行 php artisan make:service TeachersService 命令来新建一个服务 \ 此命令会在 Service 目录下新建一个 TeacherService.php 类。

6. artisan 列表

你也可以执行 php artisan list 命令,将发现你的命令也列出来了。


评论话题
提交