Laravel框架:版本5.8-通过自定义命令创建service服务层文件
新建命令(自定义命令)
建议使用git或编辑器命令行模式在项目根目录操作。
-
新建命令
php artisan make:command AddService
执行该命令,将会在app\Console目录下生成Commands目录,同时在 app\Console\Commands 目录下生成 AddService.php 文件。
-
创建存根目录及文件
在app\Console\Commands目录下创建Stubs目录,可以直接右键新建文件夹,或使用命令行mkdir app\Console\Commands\Stubs
在该目录下添加名为 services.stub 的文件,完整路径为app/Console/Commands/Stubs/services.stub -
编辑services.stub并添加内容
将如下内容添加到services.stub文件中并保存。<?php namespace DummyNamespace; class DummyClass { }
-
编辑AddService.php并添加内容
将AddService.php内容清空,并使用以下内容完全替换。<?php namespace App\Console\Commands; use Illuminate\Console\GeneratorCommand; class AddServices extends GeneratorCommand { /** * 控制台命令名称 * * @var string */ protected $name = 'make:service'; /** * 控制台命令描述 * * @var string */ protected $description = 'Create a new service class'; /** * 生成类的类型 * * @var string */ protected $type = 'Services'; /** * 获取生成器的存根文件 * * @return string */ protected function getStub() { return __DIR__.'/Stubs/services.stub'; } /** * 获取类的默认命名空间 * * @param string $rootNamespace * @return string */ protected function getDefaultNamespace($rootNamespace) { return $rootNamespace.'\Services'; } }
-
注册命令
将以下内容添加到Kernel.php文件的protected $commands = []
属性数组中,使命令生效。\App\Console\Commands\AddServices::class
具体形式为:
protected $commands = [ // \App\Console\Commands\AddServices::class ];
测试命令(自定义命令)
到这里,自定义命令已经可以使用了,执行 php artisan list
可以看到有 make:service
该命令支持。
- 执行如下命令进行测试
在app目录下看到有Services目录生成,同时该目录下会生成TeachersService.php文件,详细路径为app\Services\TeachersService.phpphp artisan make:service TeachersService
文章同步发布个人博客:https://lzj.blog.monty.site