はじめに
今回,Laravel用のファイルライブラリを作成しました。
このライブラリは,ファイルのアップロード,表示,編集,削除を行うことができます。
本ライブラリの他に,
- Laravel-medialibrary
- laravel-filemanager
等があるようです。
これらのライブラリも素晴らしいものですが,少しばかり高機能なように感じました。
自分があったらいいなと思うファイルライブラリはWordPressのメディアライブラリのようなものです。
そのため,今回は,ファイルのアップロード,表示,編集,削除の機能を持つファイルライブラリを作成しました。
ファイルライブラリの目標
ファイルライブラリを作成するにあたって以下を目標とします。
- 機能感はWordPressのメディアライブラリに近い
- 特に設定をしなくても使える
- アップロードしたファイルの一覧等をデフォルトで表示できる
- ファイルのアップロードフォームをデフォルトで使用できる
- ファイルのアップロードや情報の取得,編集をAPIを通じて行うことができる
- ファイルのアップロードや情報の取得,編集をインスタンスで行うことができる
現在は,1,2の目標を達成しています。
作成したファイルライブラリ
リポジトリは以下のGitHubにあります。
また,Packagistにも登録しています。
使い方
インストール
composer require ikepu-tp/larave-file-library
設定等のpublish
php artisan vendor:publish --provider="ikepu_tp\FileLibrary\FileLibraryServiceProvider"
ルーティング
HTTPメソッド | URI | アクション | ルート名 | 簡単な説明 |
---|---|---|---|---|
GET | /file/lib | index | file-library.index | ファイルライブラリの一覧を表示します。 |
GET | /file/lib/create | create | file-library.create | 新しいファイルをアップロードするためのフォームを表示します。 |
POST | /file/lib | store | file-library.store | ファイルをアップロードします。 |
GET | /file/lib/{fileId} | show | file-library.show | 特定のファイルの詳細を表示します。 |
GET | /file/lib/{fileId}/edit | edit | file-library.edit | 特定のファイルの編集フォームを表示します。 |
PUT/PATCH | /file/lib/{fileId} | update | file-library.update | 特定のファイルを更新します。 |
DELETE | /file/lib/{fileId} | destroy | file-library.destroy | 特定のファイルを削除します。 |
{fileId}
はUUIDです。
ファイルのアップロード
POST http://your-project.com/file/lib
Key | Type | Accepted Values | Required |
---|---|---|---|
files | Array | Y | |
names | Array | max length: 250 | Y |
ファイルの編集
PUT http://your-project.com/file/lib/{fileId}
Key | Type | Accepted Values | Required |
---|---|---|---|
name | string | max length: 250 | Y |
今後の機能追加等
まずは目標の3と4を達成することを目指します。
その次に,どういったものを追加するかは,使っている方の要望を聞きながら進めていきたいと思います。
また,Google Classroomのようにファイル選択フォームの追加もいいかもしれないとも考えています。
ただ,高機能になればなるほど既存ライブラリに近づいてしまうのであくまでもシンプルにデフォルトから使えるようにしていきたいと思います。
何か機能の提案等があれば,コメントやGitHubのIssueに投稿していただけると嬉しいです!!