blocs/admin: パッケージ概要とインストール手順
blocs/admin: パッケージ概要とインストール手順
blocs/admin は、Laravelベースの管理画面を効率的に構築するための開発支援パッケージです。JSON定義ファイルから管理画面を自動生成し、テンプレート編集のみでカスタマイズできます。このドキュメントでは、パッケージの全体像とインストール手順を説明します。
パッケージの特徴
- 自動生成ツール(developツール): JSON形式の定義ファイルから管理画面(コントローラー・ビュー・ルーティング・マイグレーション)を一括生成
- ベースコントローラー: 一覧・新規作成・編集・削除の処理フローを標準化。必要な機能のみオーバーライドして効率的に開発
- テンプレート編集のみでカスタマイズ可能: 入力項目の追加やレイアウト変更はテンプレートファイルの編集で対応
MVC構成の利用方法
- Model: Laravel標準の Eloquent ORM を使用
- View: Laravel標準の Bladeテンプレート に加え、BLOCS テンプレートエンジン(blocs/blocs)を併用
- Controller: 管理画面用の基本機能を備えた ベースコントローラー を継承
導入時に含まれる標準の管理画面
インストール後、以下の画面がすぐに利用できます。
- ホーム画面
- ログイン画面
- ユーザー管理画面
- プロフィール設定画面
インストール手順
1. PHP と Composer をセットアップ
PHP 8.3 以上と Composer が必要です。
2. Composer で Laravel をインストール
composer create-project laravel/laravel laravel-admin
cd laravel-admin
3. Composer で Admin Package をインストール
composer require blocs/admin
4. 管理画面パッケージのセットアップ
php artisan blocs:install
blocs/blocs は Step 3 の composer require blocs/admin で依存関係として自動インストールされます。このコマンドでは、管理画面に必要なファイル(テンプレート、設定ファイル、ルーティングなど)の publish、マイグレーション、初期データ投入(初期 ID/Pass: admin/admin)が行われます。
管理画面の追加ワークフロー
新たに管理画面を追加する場合は、以下の流れで作業を進めます。
- 自動生成ツールによる自動生成: JSON定義ファイルを作成し、Artisanコマンドで管理画面を自動生成(詳しくは No.3.1 を参照)
- 自動生成した管理画面のカスタマイズ: テンプレートを要件に合わせて編集し、コントローラーに処理を追加
- アクセス権限とサイドメニューの設定:
config/role.phpでアクセス権限、config/menu.phpでサイドメニューを設定(詳しくは No.3.3 / No.3.4 / No.4.4 を参照)
ルート情報・バリデーション情報・データベース定義の出力
ルート一覧、バリデーション一覧、データベース定義一覧をXML形式でダウンロードするには、routes/admin.php 内の該当ルートのコメントアウトを解除します。
/*
Route::get('/route', function () {
...
});
Route::get('/validate', function () {
...
});
Route::get('/database', function () {
...
});
*/
コメント解除後、以下のURLで一覧情報を取得できます。
| 一覧 | URL |
|---|---|
| ルート一覧 | /route |
| バリデーション一覧 | /validate |
| データベース定義一覧 | /database |
blocs:install で行われる主な処理
| 処理 | 内容 |
|---|---|
| vendor:publish | app / config / database / public / resources / routes / docs / tests をプロジェクトへ配置 |
| migrate | データベースマイグレーション実行 |
| db:seed | AdminSeeder による初期ユーザー登録(admin/admin) |
| route:cache | ルートキャッシュ再生成 |
配置後、管理画面ルートは routes/admin.php から読み込まれます。
プロフィール画面と UserUpdateTrait
標準のプロフィール設定画面(ProfileController)は、ユーザー管理と同じ User モデルを使います。パスワード変更時の旧パスワード確認など、ユーザー管理固有の更新ロジックは UserUpdateTrait に分離されています。カスタマイズの参考にしてください。