簡體   English   中英

你如何找到Laravel門面背后的基礎類?

[英]How do you find the underlying class behind a Laravel facade?

例如 - 此函數使用外觀:

File::get('path/to/file.txt');

事實證明,實際提供File::get的底層類是Illuminate\\Filesystem\\Filesystem

我查看了Laravel 4.2文檔 - 這是我使用的版本 - 以及api參考,但我找不到任何可以解釋如何提前知道如何找到“真正的”類到門面的人。

關於Laravel外牆的這個教程給出了一個涉及的方法

  • 找到File
  • 期待看到它擴展了Facade
  • 通過Facade#__callstatic()方法執行代碼
  • getFacadeAccessor()返回字符串files時,跟蹤__callstatic()resolveFacadeInstance()的行為
  • 等等
  • ...太長/很多步驟發布

這是對最新情況的一個很好的證明,但我不想經常這樣做。

我的問題是,知道你在你的app中使用的“facaded classes”不一定有相同的名稱或一些約定來幫助你搜索文件系統,怎么會有人 - 誰不知道底層的類是什么 - 找到laravel外觀的基礎類?

這是一個很好的資源: https ://laravel.com/docs/facades#facade-class-reference除此之外,請確保為您正在使用的任何編輯器安裝某種intellisense插件。 其中大多數允許您按Ctrl +右鍵單擊類/方法並轉到定義。

看來你可以使用getFacadeRoot() 例如,要找出Mail外觀背后的內容:

get_class(Mail::getFacadeRoot());
// in my case returns 'Illuminate\Mail\Mailer'

暫無
暫無

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

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