Laravel框架:通過自定義命令創建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/service.stub

編輯services.stub並添加內容
將如下內容添加到services.stub文件中並保存。

<?php

namespace DummyNamespace;

class DummyClass 
{

}


編輯AddService.php並添加內容
將AddService.php內容清空,並使用以下內容完全替換。

<?php

namespace App\Console\Commands;

use Illuminate\Console\GeneratorCommand;

class AddService 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\AddService::class
];



測試命令(自定義命令)
到這里,自定義命令已經可以使用了,執行 php artisan list 可以看到有 make:service 該命令支持。

執行如下命令進行測試

php artisan make:service TeachersService



在app目錄下看到有Services目錄生成,同時該目錄下會生成TeachersService.php文件,詳細路徑為app\Services\TeachersService.php


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM