文章目录


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​​ 该命令支持。

  • 执行如下命令进行测试​​php artisan make:service TeachersService ​​ 在app目录下看到有Services目录生成,同时该目录下会生成TeachersService.php文件,详细路径为app\Services\TeachersService.php

文章同步发布个人博客:https://lzj.blog.monty.site

*******************只要思想不滑坡,办法总比困难多********************