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 に分離されています。カスタマイズの参考にしてください。
ナレッジ目次
| No | タイトル |
|---|---|
| 1. 概要・アーキテクチャ | |
| 1.1 | blocs/admin: パッケージ概要とインストール手順(本記事) |
| 1.2 | Laravel + BLOCS: 処理フローとアーキテクチャ概要 |
| 2. blocs/blocs テンプレートエンジン | |
| 2.1 | テンプレートエンジン概要とデータ属性一覧 |
| 2.2 | 変数の表示(data-val)とメニュー項目の自動変換 |
| 2.3 | 変数の代入(data-assign)と属性値の置換(data-attribute) |
| 2.4 | 条件分岐(data-exist/none/if/unless) |
| 2.5 | 繰り返し処理(data-loop) |
| 2.6 | テンプレートの再利用(data-include / data-bloc) |
| 2.7 | 表示の装飾(data-prefix/postfix)と変換(data-convert) |
| 2.8 | 入力値フィルター(data-filter) |
| 2.9 | 多言語対応(data-lang) |
| 2.10 | バリデーション条件の指定 |
| 2.11 | カスタムバリデーションルールの作成 |
| 2.12 | Auto Include(テンプレート・UIの自動読み込み) |
| 2.13 | 入力インターフェース(ai-* クラス) |
| 2.14 | エラーコード一覧 |
| 3. blocs/admin 自動生成・設定 | |
| 3.1 | 定義ファイルの作成と管理画面の自動生成 |
| 3.2 | 自動生成後の不要機能の無効化 |
| 3.3 | アクセス権限の設定 |
| 3.4 | サイドメニューの設定 |
| 4. blocs/admin 画面カスタマイズ | |
| 4.1 | 一覧表示機能のカスタマイズ |
| 4.2 | 新規作成・編集機能のカスタマイズ |
| 4.3 | 削除機能のカスタマイズ |
| 4.4 | 共通レイアウト・ボタン配置・見出し・ログ・リダイレクト |
| 5. blocs/admin 機能拡張・UI | |
| 5.1 | ヘルパー関数 |
| 5.2 | 動的メニュー項目の追加(addOption) |
| 5.3 | ボタンコンポーネント |
| 5.4 | モーダルコンポーネント |
| 5.5 | ファイルアップロード機能 |
| 5.6 | レコードのコピーと並び替え |
| 5.7 | グラフ表示(Chart.js) |
| 5.8 | テーブルタイプの入力画面 |
| 5.9 | 複数ログイン画面の追加 |
| 6. blocs/docs | |
| 6.1 | 処理機能記述書の自動生成(docsミドルウェア) |
| 6.2 | Excelファイル操作(Blocs\Excel) |