thinkphp6系統服務的定義和使用方法

2021-10-22 03:26:39 字數 1925 閱讀 5433

服務註冊

你可以在系統服務中註冊乙個物件到容器,或者對某些物件進行相關的依賴注入。由於系統服務的執行優先順序問題,可以確保相關元件在執行的時候已經完成相關依賴注入。

可以通過命令列生成乙個服務類:

filesystemservice.php 服務類內容

<?php 

namespace

;use

think\service

;class

filesystemservice

extends

service

public

function

boot()

}

系統服務類最常用的兩個空方法:register和boot方法。

register方法通常用於註冊系統服務,也就是將服務繫結到容器中,例如:

<?php 

namespace

;use

my\util\filesystem

;class

filesystemservice

extends

service

}

register方法不需要任何的引數,如果你只是簡單的繫結容器物件的話,可以直接使用bind屬性。

<?php 

namespace

;use

my\util\filesystem

;class

filesystemservice

extends

service

boot方法是在所有的系統服務註冊完成之後呼叫,用於定義啟動某個系統服務之前需要做的操作。例如:

<?php 

namespace

think\captcha

;use

think\route

;use

think\service

;use

think\validate

;class

captchaservice

extends

service

,':attribute錯誤!');

});}

}

boot方法支援依賴注入,你可以直接使用其它的依賴服務。

定義好系統服務後,你還需要註冊服務到你的應用例項中。

可以在應用的全域性公共檔案service.php中定義需要註冊的系統服務,系統會自動完成註冊以及啟動。例如:

瀏覽器中訪問:

則會預設載入伺服器中的兩個方法並列印對應的內容

如果你需要在你的擴充套件中註冊系統服務,首先在擴充套件中增加乙個服務類,然後在擴充套件的composer.json檔案中增加如下定義:

"extra":}

,

在安裝擴充套件後會系統會自動執行service:discover指令用於生成服務列表,並在系統初始化過程中自動註冊。

ThinkPHP(6) 模板技術

判斷比較標籤 區間標籤 三元運算子 php 在如下圖所示目錄中建立html 然後在index控制器的index方法中,呼叫模板 那麼當你訪問 index index時就會顯示index.html。如果你不想要模板和方法同名,你可以在display方法中跟上模板名稱即可。如下圖 兩種方式賦值 clas...

thinkphp6陣列分頁

一 因為有複雜的資料統計,需要組陣列,這時候使用tp6的分頁會有問題,於是改為陣列分頁的方式,將以前tp3的分頁拿過來改了一下,話不多說上 引入tp3分頁源 為了和tp6的區別不會太明顯,修改了源 放入tp6 vendor topthink framework src think 下 修改詳情 1 ...

thinkphp6開發步驟記錄

1 安裝php study 有php需要的環境 2 配置環境變數 path下新增 d phpstudy pro extensions php php7.3.4nts 3 在www資料夾下 composer create project topthink think tp 6.0.dev 5 使用檢視...