Laravel:Storage::drive() 和 Storage::read()

Laravel: Storage::drive() and Storage::read()

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

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

在 Laravel 5.6 中参见 Filesystem.php 位于: \vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.php 您可以在其中阅读为 Storage facade 添加可用功能。

我建议您先尝试从框架中搜索和探索,而不是在互联网上搜索。如果您仍然无法找到解决方案,请上网。

Storage 外观用于 \Illuminate\Filesystem\FilesystemManager

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

但是,read() 方法并不直接存在于 FilesystemManager 上。 它存在于另一个 class \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