⏱️

95%削減!Laravel開発を劇的に高速化するツール【LAC】

に公開

はじめに

皆様のLaravel開発において、下記のような作業を繰り返すことは多いのではないでしょうか?

  • モデル、コントローラー、サービス、リクエストクラスの作成
  • ルーティングの設定
  • バリデーションルールの記述
  • モデルのリレーション定義
  • テストデータのインポート

これらは必要不可欠なのですが、毎回行うのは面倒ですし地味に時間が取られる印象です。

Laravelに限らずWeb開発では、新しいリソースを追加するたびに同じような作業を繰り返す必要があり、以下のような課題があります

  1. ビジネスロジック以外のコード作成に時間を取られる
  2. 開発者によってコードの書き方が異なることによる品質のばらつき
  3. 手動作業による設定漏れやタイプミスなどのヒューマンエラー

これらの課題を解消するため『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. サービス層パターンの採用

    • ビジネスロジックをコントローラーから完全分離
    • テスタビリティの向上と責務の明確化
  2. シンプルなコントローラー設計

    • コントローラーは入力検証とサービス呼び出しのみに責務を限定
    • 可読性とメンテナンス性の向上
  3. 統一されたプロジェクト構造

    • チーム開発での一貫性を保証
    • 新規参加者のオンボーディングを迅速化

削減効果について

⏱️ 開発時間の比較 【 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