Laravel立面流动结构的澄清

时间:2016-05-15 01:12:01

标签: php laravel laravel-5 laravel-5.2 laravel-facade

所以我正在检查Laravel的代码

我正在查看存储外观。我认为这是它被加载的方式。如果我错了,请纠正我。

  • 我们何时访问

    Storage::get('someFile.txt');

  • 正在通过配置中的别名访问存储我是否正确?

    'Storage' => Illuminate\Support\Facades\Storage::class

  • 然后它会访问我相信的这个功能



protected static function getFacadeAccessor(){

  return 'filesystem';

}




  • 然后我认为返回文件系统正在访问存储在服务容器上的文件系统我相信吗?这是在附加到容器的FilesystemServiceProvider中设置的。



protected function registerManager(){

  $this->app->singleton('filesystem', function () {
    return new FilesystemManager($this->app);
  });
}




总体来说,Facade是否正确引用服务容器上的文件系统?

1 个答案:

答案 0 :(得分:1)

是的,这是真的:laravel中的所有Facade都是从服务容器中解析对象并在其上调用方法的唯一方便方法

所以,首先你在服务容器上注册一个绑定,一旦你完成它,而不是做

$fs = App::make('filesystem');
$file = $fs->get('someFile.txt');

你可以这样做:

$file = Storage::get('someFile.txt');