Laravel Facade 的流结构说明
Clarification of Flow Structure of Laravel Facade
所以我正在检查 Laravel
的代码
我正在查看存储外观。我认为这就是它的加载方式。如果我错了请纠正我。
每当我们访问
Storage::get('someFile.txt');
正在通过配置中的别名访问存储,我是否正确?
'Storage' => Illuminate\Support\Facades\Storage::class
我相信它会访问这个函数
protected static function getFacadeAccessor(){
return 'filesystem';
}
- 然后我认为 return 文件系统正在访问存储在服务容器上的文件系统,我相信?这是在附加到容器的 FilesystemServiceProvider 中设置的。
protected function registerManager(){
$this->app->singleton('filesystem', function () {
return new FilesystemManager($this->app);
});
}
总的来说,Facade 正在引用服务容器上的文件系统,我说得对吗?
是的,确实如此:laravel 中的所有 Facade 只是一种从服务容器解析对象并调用它们的方法的便捷方式
所以,首先你在服务容器上注册一个绑定,一旦你完成了,而不是做
$fs = App::make('filesystem');
$file = $fs->get('someFile.txt');
你可以简单地做:
$file = Storage::get('someFile.txt');
所以我正在检查 Laravel
的代码我正在查看存储外观。我认为这就是它的加载方式。如果我错了请纠正我。
每当我们访问
Storage::get('someFile.txt');
正在通过配置中的别名访问存储,我是否正确?
'Storage' => Illuminate\Support\Facades\Storage::class
我相信它会访问这个函数
protected static function getFacadeAccessor(){
return 'filesystem';
}
- 然后我认为 return 文件系统正在访问存储在服务容器上的文件系统,我相信?这是在附加到容器的 FilesystemServiceProvider 中设置的。
protected function registerManager(){
$this->app->singleton('filesystem', function () {
return new FilesystemManager($this->app);
});
}
总的来说,Facade 正在引用服务容器上的文件系统,我说得对吗?
是的,确实如此:laravel 中的所有 Facade 只是一种从服务容器解析对象并调用它们的方法的便捷方式
所以,首先你在服务容器上注册一个绑定,一旦你完成了,而不是做
$fs = App::make('filesystem');
$file = $fs->get('someFile.txt');
你可以简单地做:
$file = Storage::get('someFile.txt');