【问题标题】:How do you find the underlying class behind a Laravel facade?你如何找到 Laravel 外观背后的底层类?
【发布时间】:2023-03-09 06:35:02
【问题描述】:

例如 - 此函数使用外观:

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

原来提供File::get的底层类是Illuminate\Filesystem\Filesystem

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

tutorial on Laravel facades 给出了一种方法,其中涉及

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

这是一个很好的演示,但我不想经常这样做。

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

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    这是一个不错的资源:@​​987654321@ 除此之外,请确保为您碰巧使用的任何编辑器安装某种智能感知插件。它们中的大多数允许您在类/方法上按 Ctrl+右键单击并转到定义。

    【讨论】:

    【解决方案2】:

    看来你可以使用getFacadeRoot()。例如,要找出 Mail 外观背后的内容:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-30
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 2017-02-14
      • 1970-01-01
      • 2020-08-13
      相关资源
      最近更新 更多