Laravel – 自定义命令 – 创建 service 服务层文件

文章介绍了如何在Laravel框架中创建一个新的命令行工具,用于生成服务类。首先通过`phpartisanmake:command`新建命令,然后创建存根目录和文件,编辑存根内容。接着,修改`MakeService.php`文件以指定存根位置和类的命名空间。最后,在`kernel.php`中注册命令并测试其功能。
摘要由CSDN通过智能技术生成

1 新建命令

1、新添加命令

php artisan make:command MakeService
# 执行该命令,将会在app\Console目录下生成Commands目录;
# 同时在 app\Console\Commands 目录下生成 MakeService.php 文件;

2、创建存根目录及文件

# 在 app\Console\Commands目录下创建 Stubs目录;可以直接右键新建文件夹,
mkdir app/Console/Commands/Stubs

# 在该目录下添加名为 services.stub 的文件,
touch app/Console/Commands/Stubs/services.stub

# 完整路径为 app/Console/Commands/Stubs/service.stub

3、编辑文件 services.stub

<?php

namespace {{ namespace }};

class {{ class }}
{
  public function index()
  {
    return 1;
  }
}

4、编辑文件 MakeService.php 使用以下内容完全替换。

<?php

namespace App\Console\Commands;

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';
    }
}

2 注册命令

# 编辑 kernel.php 文件中的 protected $commands = [] 属性数组;
# 注册服务使命令生效。
// 记得使用类
// use App\Console\Commands\MakeService;
protected $commands = [
    // 创建服务层
    MakeService::class
]

3 测试命令

# 查看所有的可执行命令
php artisan list
# 测试是否可以创建成功
php artisan make:service TestService

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值