2

だから私はLaravelのコードを調べています

Storage ファサードを見ています。このように読み込まれていると思います。私が間違っている場合は修正してください。

  • アクセスするたびに

    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);
  });
}

全体として、ファサードはサービスコンテナのファイルシステムを参照していますか?

4

1 に答える 1

1

はい、そうです。laravel のすべての Facade は、サービス コンテナーからオブジェクトを解決し、それらのメソッドを呼び出す便利な方法にすぎません。

そのため、最初にサービス コンテナーにバインディングを登録し、それが完了したら、代わりに

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

あなたは簡単に行うことができます:

$file = Storage::get('someFile.txt');
于 2016-05-15T09:32:26.683 に答える