1、执行下面的命令:
php artisan make:command MakeService
# 执行该命令,将会在app\Console目录下生成Commands目录;
# 同时在 app\Console\Commands 目录下生成 MakeService.php 文件;
2、在 Commands 目录下创建Stubs目录,并在Stubs目录下创建 services.stub文件,如下图:
3、编辑 services.stub 文件内容,将如下内容复制到services.stub文件
<?php
namespace DummyNamespace;
class DummyClass
{
}
4、编辑 MakeService.php 文件,使用以下内容完全替换
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Console\GeneratorCommand;
class MakeService 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';
}
}
5、注册命令,如下图所示:
# 编辑 kernel.php 文件中的 protected $commands = [] 属性数组;
# 注册服务使命令生效。
6、测试一下命令,是否可以使用。在项目的更目录执行:php artisan list 。可以看到,列出的命令列表里面,多出了一个make:service
7、测试一下 make:service是否可以创建成功,结果是可以的。
8、执行完命令会在 app目录下面创建一个 Services 目录,同时创建一个TestServices文件。如下图所示:
9、在这里再简单介绍一下怎么使用 Service层 。在 TestServices.php文件中,加入如下内容:
10、在控制其中调用该服务,调用方式如下:
11、访问控制,为输出两遍 somesome 。说明这两种方式都是可行的。