你如何找到Laravel门面背后的基础类?

时间:2015-04-19 22:26:48

标签: php laravel

例如 - 此函数使用外观:

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

事实证明,实际提供File::get的基础类是Illuminate\Filesystem\Filesystem

我查看了Laravel 4.2文档 - 这是我使用的版本 - 以及api参考,但我找不到任何可以解释如何提前知道知道的人< / em>如何找到&#34;真实&#34;类到门面。

这个tutorial on Laravel facades给出了一个涉及

的方法
  • 找到File
  • 希望看到它扩展了课程Facade
  • 通过Facade#__callstatic()方法
  • 执行代码
  • __callstatic()返回字符串resolveFacadeInstance()
  • 时跟踪getFacadeAccessor()files的行为
  • 等等
  • ......太长/很多步骤发布

这是对最新情况的一个很好的证明,但我不想经常这样做。

我的问题是,知道&#34; facaded类&#34;你在你的应用程序中使用不一定有相同的名称或一些约定来帮助你搜索文件系统,那些人 - 谁不知道底层的类是什么 - 找到laravel外观的底层类?

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:3)

It seems that you can use getFacadeRoot(). For example, to find out what's behind the Mail facade:

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