下面由Laravel教學欄位帶大家介紹如何使用 make:service 指令來快速產生 Services,希望對大家有幫助!
Artisan 是 Laravel 隨附的命令列介面。 Artisan 以 artisan
腳本的形式存在於應用的根目錄,並提供了許多有用的命令,這些命令可以在構建應用時為你提供幫助。
除 Artisan 提供的指令外,你也可以寫自己的自訂指令。命令在多數情況下位於 app/Console/Commands 目錄中; 不過,只要你的命令可以由 Composer 加載,你就可以自由選擇自己的存儲位置。
在開始之前,我們要準備對應的目錄和檔案。
我們可以使用以下指令快速產生ServiceMakeCommand.php
檔案:
php artisan make:command ServiceMakeCommand
執行完後會在你的Console
資料夾下產生Commands
資料夾和Commands/ServiceMakeCommand.php
檔案。
我們還需要在Commands
資料夾下新增一些資料夾和檔案:
結構如下:
- app - Console + - Commands + - stubs + - service.plain.stub + - ServiceMakeCommand.php - Kernel.php - . - . - .
service.plain. stub
程式碼:
app/Console/Commands/stubs/service.plain.stub
<?php namespace {{ namespace }}; class {{ class }} { // }
我們的前期準備就此結束,是不是很簡單?哈哈。
接下來我們就直接一把梭哈了,注意改動的程式碼噢。
我們主要對著ServiceMakeCommand.php
檔案一把梭哈,所以:
app/Console/Commands/ServiceMakeCommand.php
<?php namespace App\Console\Commands; use Illuminate\Console\GeneratorCommand; class ServiceMakeCommand extends GeneratorCommand { /** * The name and signature of the console command. * * @var string */ protected $signature = 'make:service {name}'; /** * The console command description. * * @var string */ protected $description = 'Create a new service class'; /** * The type of class being generated. * * @var string */ protected $type = 'Service'; /** * Get the stub file for the generator. * * @return string */ protected function getStub() { return __DIR__ . '/stubs/service.plain.stub'; } /** * Get the default namespace for the class. * * @param string $rootNamespace * @return string */ protected function getDefaultNamespace ( $rootnamespace ) { return $rootnamespace . '\Services'; } }
最後,我們執行以下命令快速產生UserService.php
檔案:
php artisan make:service UserService
結構如下:
- app - Console - Commands - stubs - service.plain.stub - ServiceMakeCommand.php - Kernel.php + - Services + - UserService.php - . - . - .
讓我們查看UserService.php
和我們想像中的程式碼是否一致:
app/Services/UserService.php
<?php namespace App\Services; class UserService{ // }
恭喜,我們已經做到我們想要的結果了。
總結
雖然我們做得比較簡陋,但我們只需稍加改進,就可以讓它變得更完善。
以上是聊聊laravel怎麼快速產生 Services?的詳細內容。更多資訊請關注PHP中文網其他相關文章!