新建命令
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內容清空,並使用以下內容完全替換。<?phpnamespace 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 該命令支援。
- 執行如下命令進行測試
在app目錄下看到有Services目錄生成,同時該目錄下會生成TeachersService.php檔案,詳細路徑為app\Services\TeachersService.phpphp artisan make:service TeachersService
本作品採用《CC 協議》,轉載必須註明作者和本文連結