当前位置: 首页 > 工具软件 > laravel-s > 使用案例 >

Laravel框架:版本5.8-通过自定义命令创建service服务层文件

何高歌
2023-12-01

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

*******************只要思想不滑坡,办法总比困难多********************
 类似资料: