2

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

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

4

2 回答 2

1

Storage门面是\Illuminate\Filesystem\FilesystemManager为。

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

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

所以 aStorage::read()或多或少与 a 相同$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

于 2018-09-04T07:09:46.650 回答
0

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

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

于 2018-09-04T05:02:04.800 回答