⏱️
95%削減!Laravel開発を劇的に高速化するツール【LAC】
はじめに
皆様のLaravel開発において、下記のような作業を繰り返すことは多いのではないでしょうか?
- モデル、コントローラー、サービス、リクエストクラスの作成
- ルーティングの設定
- バリデーションルールの記述
- モデルのリレーション定義
- テストデータのインポート
これらは必要不可欠なのですが、毎回行うのは面倒ですし地味に時間が取られる印象です。
Laravelに限らずWeb開発では、新しいリソースを追加するたびに同じような作業を繰り返す必要があり、以下のような課題があります
- ビジネスロジック以外のコード作成に時間を取られる
- 開発者によってコードの書き方が異なることによる品質のばらつき
- 手動作業による設定漏れやタイプミスなどのヒューマンエラー
これらの課題を解消するため『Laravel Arsenal Core (LAC)』を開発しました。
LACの導入により以下を実現します。
- ✅ 開発速度の劇的向上 - 共通箇所の開発工数を95%削減
- ✅ コード品質の統一 - Laravelのセオリーに基づく自動生成
- ✅ ヒューマンエラーの削減 - 手動設定を可能な限り省略
何ができるツールなのか
LACは、Laravel開発における反復作業を自動化し、一貫したコード品質を保ちながら開発速度を劇的に向上させるツールキットとなります。
主な機能
1. 完全なCRUDスキャフォールディング
- デフォルトのLaravelではできないServiceやViewファイルなどの自動作成に対応
- RESTful APIに沿ってCRUDの大枠も自動作成されますので、ファイル間の繋ぎ込みが不要
2. ルートの自動同期
- 各コントローラーファイルの内容に沿って最小限のルートを自動生成します
3. Excelでのテーブル連携
- 各マイグレーションファイルからデータベースの構成を自動で読み取り、データインポート用のExcelテンプレートを自動作成します
- 作成されたテンプレートにデータを入れることで、1コマンドでその内容を該当テーブルにインポートすることが可能です
4. モデルリレーション自動生成
- 各マイグレーションファイルからテーブル間のリレーションを読み取り、各種モデルにリレーションを自動作成します
5. バリデーション自動同期
- 各マイグレーションファイルから各カラムの条件を読み取り、各種リクエストファイルに条件を自動作成します
アーキテクチャ設計思想
LACは以下の設計原則に基づいています:
-
サービス層パターンの採用
- ビジネスロジックをコントローラーから完全分離
- テスタビリティの向上と責務の明確化
-
シンプルなコントローラー設計
- コントローラーは入力検証とサービス呼び出しのみに責務を限定
- 可読性とメンテナンス性の向上
-
統一されたプロジェクト構造
- チーム開発での一貫性を保証
- 新規参加者のオンボーディングを迅速化
削減効果について
⏱️ 開発時間の比較 【 1 リソースあたり (例:Product CRUD) 】
項目 | コマンド | 所要時間 |
---|---|---|
基本ファイル4種(Model/Migration/Controller/Factory)作成 | make:model Product -mcf | 1分 |
Seeder作成 | make:seeder ProductSeeder | 1分 |
Request(2ファイル)作成 | make:request × 2回 | 2分 |
Service作成 | ❌ 手動対応 | 8分 |
テーブル定義に沿ったマイグレーション修正 | ❌ 手動対応 | 10分 |
CRUDの作成(Service側) | ❌ 手動対応 | 20分 |
CRUDの繋ぎ込み(Controller側) | ❌ 手動対応 | 10分 |
Views(5ファイル) | ❌ 手動対応 | 10分 |
CSS/JS(各4ファイル) | ❌ 手動対応 | 10分 |
Blade - CSS/JSの繋ぎ込み | ❌ 手動対応 | 5分 |
Routes設定 | ❌ 手動対応 | 5分 |
モデルリレーション設定 | ❌ 手動対応 | 10分 |
バリデーション設定 | ❌ 手動対応 | 10分 |
合計 | - | 約102分 |
LACでは下記を実行してわずか5分で完了!
php artisan lac:scaffold Product # メイン処理
php artisan lac:sync-routes # ルート同期
php artisan lac:sync-model-rel # リレーション同期
php artisan lac:sync-validations # バリデーション同期
- 手動作業時間:102分(約1時間40分)
- LAC実行時間:5分
- 削減率:95%
プロジェクト規模別の効果
プロジェクト規模 | 削減時間 | 削減コスト(時給¥5,000想定) |
---|---|---|
小規模(3リソース) | 4.9時間 | 2.4万円 |
中規模(10リソース) | 16.2時間 | 8.1万円 |
大規模(20リソース) | 32.3時間 | 16.2万円 |
計算処理
- 1リソースあたりの削減時間: 97分(約1.62時間)
- 小規模(3リソース): 1.62時間 × 3 = 4.9時間
- 中規模(10リソース): 1.62時間 × 10 = 16.2時間
- 大規模(20リソース): 1.62時間 × 20 = 32.3時間
導入方法・使い方
詳細な導入手順やサンプルコードは、GitHubのREADMEをご確認ください。
👉 Laravel Arsenal Core - README
インストール
composer require lac/toolkit
📦 パッケージ詳細 : https://packagist.org/packages/lac/toolkit
基本的な使用フロー
# 1. スキャフォールディング処理
php artisan lac:scaffold Product
# 2. 各種同期処理
php artisan lac:sync-routes # ルート同期
php artisan lac:sync-model-rel # リレーション同期
php artisan lac:sync-validations # バリデーション同期
# 3. データ連携処理(オプション)
php artisan lac:db-template # Excelテンプレート生成
php artisan lac:db-import # データインポート
おわりに
皆様の開発効率向上にLACが貢献できれば幸いです。
📝 フィードバック・要望
ご要望や改善案につきましては、下記GitHubのIssuesからお気軽にお寄せください。
👉 https://github.com/ChikauKume/laravel-arsenal-core/issues
この記事が役に立った方は、ぜひいいね!やコメント、シェアをお願いします。
Discussion