你如何找到Laravel立面背后的底层类?

2022-08-31 01:09:56

例如 - 此函数使用外观:

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

事实证明,实际提供的底层类是File::getIlluminate\Filesystem\Filesystem

我查看了Laravel 4.2文档 - 这就是我使用的版本 - 以及api参考,但我找不到任何东西可以向那些事先不知道如何找到“真实”类的人解释如何。

本教程关于Laravel立面给出了一种方法,其中包括

  • 查找类File
  • 看看它是否扩展了类Facade
  • 通过该方法跟踪代码Facade#__callstatic()
  • 跟踪 的行为,当返回字符串时__callstatic()resolveFacadeInstance()getFacadeAccessor()files
  • 等等,等等
  • ...太长/发布步骤太多

这是正在发生的事情的一个很好的演示,但我不想经常这样做。

我的问题是,知道你在应用程序中使用的“facaded类”不一定具有相同的名称或一些约定来帮助你搜索文件系统,那么有人 - 事先不知道底层类是什么 - 如何找到laravel外观的基础类?


答案 1

这是一个很好的资源:https://laravel.com/docs/facades#facade-class-reference 除此之外,请确保为您碰巧使用的任何编辑器安装某种智能插件。它们中的大多数允许您按住 Ctrl+右键单击类/方法并转到定义。


答案 2

看来你可以使用.例如,要了解外观背后的内容::getFacadeRoot()Mail

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

推荐