【问题标题】:Laravel: Storage::drive() and Storage::read()Laravel: Storage::drive() 和 Storage::read()
【发布时间】:2018-09-04 04:57:27
【问题描述】:

我在一个 Laravel 5.1 项目中看到了这些 Storage::drive()Storage::read(),我在互联网上找不到这两个的任何信息。

可以在这里解释或发布这些方法的结构吗?

【问题讨论】:

标签: php laravel laravel-storage


【解决方案1】:

Storage 门面用于\Illuminate\Filesystem\FilesystemManager

当你调用Storage::drive()时,Laravel 正在调用一个 \Illuminate\Filesystem\FilesystemManager 在幕后使用 drive() 方法。

但是,read() 方法并不直接存在于 FilesystemManager 上。 它存在于另一个类\Illuminate\Contracts\Filesystem\Filesystem。 在 FilesystemManager 上调用不存在的方法时。 PHP 将使用FilesystemManager 内部的魔术方法__call()。在这种情况下,它将调用重定向到 Filesystem::drive() 方法。

所以Storage::read() 或多或少与$filesystemManager->drive()->read() 相同。

你可以在这里找到一些 api 文档。
https://laravel.com/api/5.6/Illuminate/Filesystem/FilesystemManager.html
https://laravel.com/api/5.6/Illuminate/Filesystem/Filesystem.html

您还可以在此处找到一些 Facade 文档。
https://laravel.com/docs/5.6/facades

【讨论】:

    【解决方案2】:

    在 Laravel 5.6 中,请参阅位于以下位置的 Filesystem.php: \vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.php 您可以在其中阅读为 Storage 外观添加可用功能。

    我会建议你先尝试从框架搜索和探索,而不是在互联网上搜索。如果您仍然坚持寻找解决方案,请上网。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-07
      • 2018-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-17
      • 1970-01-01
      • 2019-06-04
      相关资源
      最近更新 更多