はじめに
Laravelでファイルを取り扱った個人開発を行っている際にファイル保存の方法を調べた際に気になったため、調べてまとめました。
駅に貼られているチラシを見るように流し見していただければ幸いです。
Storageとは?
LaravelではFlysystem PHPパッケージによって提供されているファイルシステムを抽象化させたものを使えるように設定されている。
設定ファイルはconofig/filesystems.php
にあり、環境によって保存先のディレクトリが分けられている。らしい。 (引用:参考文献1)
今回はそんなStorage
を使ったファイルおよびディレクトリの操作方法をまとめてみる。
基本的な書式
Storage
はFacades
を拡張して使われるもの。
なので書式は基本的に
Storage::◯◯('hoge', 'fuga');
になる。
ファイル関連
ファイル保存
Storage::put
Storage::put('file_name', $file);
で$fileを'file_name'という名前で保存
することができます。
Storage::putFile
Storage::putFile('dir', $file);
で$fileを'dir'に保存
することができます。Storage::putFile
では
ファイル名は自動で設定されます。
また、
Storage::putFile('dir', $file, 'public');
とすることで$fileを一般公開したい
という意思を伝えることができます。
Storage::putFileAs
Storage::putFileAs('dir', $file, 'file_name');
で$fileを'dir'に'file_name'という名前で保存
することができます。Storage::putFileAs
では自分でファイル名は設定することができます。
ファイル書き込み
Storage::prepend
Storage::prepend('file_name', 'hogegeeeee');
でfile_nameの先頭にhogegeeeeeを書き込む
ことができます。
Storage::append
Storage::append('file_name', 'fugagaaaaaa');
でfile_nameの末尾にfugagaaaaaaを書き込む
ことができます。
ファイルのコピー
Storage::copy
Storage::copy('old dir/file_name', 'new dir/file_name');
でold dirにあるfile_nameをnew dirにコピー
することができます。
ファイルの移動
Storage::move
Storage::move('old dir/file_name', 'new dir/file_name');
でold dirにあるfile_nameをnew dirに移動
することができます。
また、
Storage::move('file_name', 'new_file_name');
でfile_nameの名前をnew_file_nameに変更
できます。
ファイル削除
Storage::move
Storage::delete('file_name');
でfile_nameを削除
することができます。
また、
Storage::delete(['file_name', 'file_name2']);
でfile_nameとfile_name2を削除
することができます。
#ディレクトリ関連
ディレクトリ内の全ファイルを取得
Storage::files
Storage::files('dir');
でdirの中の全ファイルを配列で返す
ことができます。
Storage::allFiles
Storage::allFiles('dir');
でdirの中のサブディレクトリの中も含めた全ファイルを配列で返す
ことができます。
ディレクトリ内の全ディレクトリを取得
Storage::directories
Storage::directories('dir');
でdirの中の全ディレクトリを配列で返す
ことができます。
Storage::allFiles
Storage:: allDirectories('dir');
でdirの中のサブディレクトリの中も含めた全ディレクトリを配列で返す
ことができます。
ディレクトリ作成
Storage:makeDirectory
Storage:makeDirectory('dir');
でdirという名前のディレクトリを作成する
ことができます。
ディレクトリ削除
Storage:deleteDirectory
Storage:deleteDirectory('dir');
でdirという名前のディレクトリを削除する
ことができます。
終わりに
今回はStorageを使ったファイルおよびディレクトリ操作についてまとめてみました。
完全に自己満の記事ですが、何かの役に立てれば幸いです。
それでは、またどこかで。笑
#参考文献