簡體   English   中英

有人可以解釋這段代碼在laravel中做什么

[英]Can someone explain what this code does in laravel

我認為我對后衛的工作有一個粗略的認識。 由於某種原因,在線上並沒有太多的文字記載。 我在某人的中間件中看到了這一行代碼

public function __construct(Guard $auth)
{
    $this->auth = $auth;
}

而且我不明白它的作用。 我了解內置警衛有兩種類型:Web和api,而Web是默認警衛。 構造內部的“ Guard”有什么作用? 以及$ auth變量如何起作用?

這是完整代碼的圖片 在此處輸入圖片說明

Guard類用於身份驗證,即登錄用戶,檢查是否有經過身份驗證的用戶,檢索經過身份驗證的用戶,將其注銷等。

我想說的(訪問文檔和各種教程)最常用的方法是使用Auth Facadeauth() helper函數。 無論采用哪種方法,您都可以使用相同的方法,例如

auth()->user()Auth::user()將返回當前經過身份驗證的用戶。
auth()->id()Auth::id()將返回當前經過身份驗證的用戶的id
auth()->check()Auth::check()會告訴您當前用戶是否已登錄。
等等

無論哪種情況(使用auth()->Auth::您都將訪問Guard類上的方法。


Laravel也有一個叫做Service Container的東西,這是使您能夠進行依賴注入的一種方法。 從本質上講,這是您可以自動獲取類的實例的地方,而無需執行諸如new ClassName() 乍一看似乎沒什么大不了的,但是如果您有一個需要向其構造函數傳遞不同變量和類的類,則可以在容器中進行設置,因此您不必擔心。 另一個好處是您想使用一個類的相同實例,而不是每次都創建一個新實例,這也可以使用容器來完成。


現在,有些人更喜歡使用依賴項注入,而不是使用Facades或helper函數(有關更多信息,請參見此處 )。 對於您的示例中的案例,您將注入Guard類,以便您可以將其作為類的屬性進行訪問,而不是使用Facade或helper函數。 沒有比這更多的了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM