下面由laravel教學欄位介紹Laravel自訂Make指令產生Service類,希望對需要的朋友有幫助!
環境說明
一樣我所使用的環境為:Laravel Framework 8.40.0
#為我所使用的環境為:
#。 C:\www\wwwroot\laravel8>php artisan --version
Laravel Framework 8.40.0
一、製作指令檔
- 前期知識的相關製作的教學課程,請參考我的另一篇部落格Laravel自訂Make指令產生目標類別。
-
執行以下指令
Console/Commands/MakeService.php<pre class="brush:php;toolbar:false"> php artisan make:command MakeService</pre>
產生 指令檔。 -
getStub修改繼承類別
將繼承類別修改成GeneratorCommand
,該類別的命名空間為
Illuminate\Console\GeneratorCommand
。刪除實例化方法,handle函數
實作一個方法 。 -
name設定
name屬性。
修改$signature
屬性為 屬性,並設定指令: -
protected $name = 'make:service';
Service設定
type屬性值
type
類型設置,我們產生的是service
#,所以我們設定的屬性就是。
type類型是自己去定義的,本身沒有特殊意義,可以不用設定。protected $type = 'Service';
type屬性值只是在創建錯誤的時候,給你一個友善的提示,如下所示:
type<pre class="brush:php;toolbar:false"> C:\www\wwwroot\laravel8>php artisan make:service TestService already exists! C:\www\wwwroot\laravel8>php artisan make:service TestService Service already exists!</pre>
第一個是沒有設定type
#屬性的效果,第二個是設定了屬性的效果。
官方使用的type有:Controller,Middleware,Cast,Channel… 根據自己的需求修改其他的屬性 -
Services設定Stub的位置和指令空間
Stub的位置是在根目錄下
Stubs/service.stub裡面。
命名空間在app
目錄下 裡面。
實例程式碼如下:<?php namespace App\Console\Commands;
use Illuminate\Console\GeneratorCommand;
class MakeService extends GeneratorCommand{
/**
* The console command name.
*
* @var string
*/
protected $name = 'make:service';
/**
* The console command description.
*
* @var string
*/
protected $description = '生成service对象类';
/**
* The type of class being generated.
*
* @var string
*/
protected $type = 'Service';
/**
* Get the stub file for the generator.
*
* @return string
*/
protected function getStub()
{
// Implement getStub() method.
return $this->laravel->basePath('/stubs/service.stub');
}
/**
* Get the default namespace for the class.
*
* @param string $rootNamespace
* @return string
*/
protected function getDefaultNamespace($rootNamespace)
{
return $rootNamespace.'\Services';
}}
#二、製作Stub檔案
我的service檔案目前不需要繼承或依賴什麼類。所以,相對的比較簡單。如果你有特別的需要,可以進行擴充操作。
實例程式碼如下:類別內部會自動替換成自動產生的類別名稱和設定的命名空間。<?phpnamespace DummyNamespace;class DummyClass{ //}DummyClass
和DummyNamespace
在繼承的GeneratorCommand
建議這種寫法,可以使用編輯器的語法提示,以獲得更友善的提示效果。
另外,你也可以使用Larave
內建的{{ class }}
和
寫法。
三、測試Service產生
執行以下指令
php artisan make:service IndexService
能正常產生成功<pre class="brush:php;toolbar:false">C:\www\wwwroot\laravel8>php artisan make:service IndexService
Service created successfully.</pre>
產生的檔案的目錄是
,產生的檔案如下:###### #<?php namespace App\Services; class IndexService{ //}相關推薦:最新的五個Laravel影片教學
以上是介紹Laravel自訂Make指令產生Service類的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Laravel通過簡化Web開發過程和提供強大功能脫穎而出。其優勢包括:1)簡潔的語法和強大的ORM系統,2)高效的路由和認證系統,3)豐富的第三方庫支持,使得開發者能專注於編寫優雅的代碼並提高開發效率。

laravelispredminandermanthandermanthandermanthandermanthermanderframework,設計Forserver-SideLogic,databasemagement,andapideplupment,thryitalsosupportsfortfortsfrontenddevelopmentwithbladeTemplates。

Laravel和Python在性能和可擴展性方面的表現各有優劣。 Laravel通過異步處理和隊列系統提升性能,但受PHP限制在高並發時可能有瓶頸;Python利用異步框架和強大的庫生態系統表現出色,但在多線程環境下受GIL影響。

Laravel適合團隊熟悉PHP且需功能豐富的項目,Python框架則視項目需求而定。 1.Laravel提供優雅語法和豐富功能,適合需要快速開發和靈活性的項目。 2.Django適合複雜應用,因其“電池包含”理念。 3.Flask適用於快速原型和小型項目,提供極大靈活性。

Laravel可以用於前端開發。 1)使用Blade模板引擎生成HTML。 2)集成Vite管理前端資源。 3)構建SPA、PWA或靜態網站。 4)結合路由、中間件和EloquentORM創建完整Web應用。

PHP和Laravel可用於構建高效的服務器端應用。 1.PHP是開源腳本語言,適用於Web開發。 2.Laravel提供路由、控制器、EloquentORM、Blade模板引擎等功能,簡化開發。 3.通過緩存、代碼優化和安全措施,提升應用性能和安全性。 4.測試和部署策略確保應用穩定運行。

Laravel和Python在學習曲線和易用性上的表現各有優劣。 Laravel適合快速開發Web應用,學習曲線相對平緩,但掌握高級功能需時間;Python語法簡潔,學習曲線平緩,但動態類型系統需謹慎。

Laravel在後端開發中的優勢包括:1)優雅的語法和EloquentORM簡化了開發流程;2)豐富的生態系統和活躍的社區支持;3)提高了開發效率和代碼質量。 Laravel的設計讓開發者能夠更高效地進行開發,並通過其強大的功能和工具提升代碼質量。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)