進行中のLaravelアプリケーションの大きさが知りたい時に 便利なプラグイン「laravel-stats」の紹介です。
- Laravelアプリケーションのコントローラーやモデル、メソッド数、コードのライン数までを解析しプロジェクトの情報を表示できる
laravel-stats は プロジェクトルート上から composer コマンドを使って導入します。なお、Laravel が ' 5.5 以上
'、インストールされているPHPのバージョンが ' 7.0以上
'の必要があります。
# install
composer require "wnx/laravel-stats" --dev
laravel-stats がインストールされると、' status
' コマンドが使えるようになり、プロジェクト内のコントローラーや、モデル、ミドルウェア、テスト ... etc のクラス数、メソッド数などの分類された情報をリスト化できるようになります。
# laravel-statsの起動
php artisan stats

* laravel-statsで判別出来る分類
- Controller ( コントローラー )
- Model ( モデル )
- Command ( artisan コマンド )
- Rule ( バリデーションルール )
- Policy ( ポリシー )
- Middleware ( ミドルウェア )
- Event ( イベント )
- Event Listener ( イベントリスナー )
- Mail ( メール )
- Notification ( SMSやSLACKにメッセージを送信する時に使う機能 )
- Job ( ジョブ )
- Migration ( データベースマイグレーション )
- Request ( POSTデータを受け取る歳のバリデーション )
- Resource ( EloquentモデルからAPIリソースを生成する時に使う機能 )
- Seeder ( DBにデータを入れる時に使う機能 )
- ServiceProvider ( サービスプロバイダー )
- Dusk Tests ( ダスク テスト )
- BrowserKit Test ( ブラウザテスト )
- PHPUnit Test ( ユニットテスト )
laravel-stats は、 デフォルトで ' app
', ' database
', ' tests
' フォルダ内のファイルを解析しますが、コンフィグファイルで指定ディレクトの追加、除外が可能です。
プロジェクトルート上で、下記スニペットの ' vendor:publish
' コマンド を叩くと、 ' config
' フォルダ内に ' stats.php
' が作成されます。
# laravel-stats用のコンフィグファイルを生成
php artisan vendor:publish --provider="Wnx\LaravelStats\StatsServiceProvider"
' config/stats.php
' は下記のように配列がを定義されており、' path
' 配列が、解析するディレクトリ、' exclude
' が 解析から除外するディレクトリになっています。
* 下の例では ' models
' ファルダを解析するように追加しました
return [
/*
* 解析するディレクトリ
*/
'paths' => [
base_path('app'),
base_path('database'),
base_path('tests'),
base_path('models') // modelsフォルダを追加
],
/*
* 解析を除外するディレクトリ
*/
'exclude' => [
// base_path('app/helpers.php'),
// base_path('app/Services'),
],
....
laravel-stats は ' rails_stats
' という Ruby用の パッケージにインスパイアされて開発されており、Ruby On Railsでも同様の機能を使うことが出来ます。
進行中のLaravelプロジェクトがどれ位のボリュームがあるか調べたい時、Model数を見てどれぐらいのテーブルが使われているかなど、プロジェクト全体のだいたいの大きさが コマンド一発で把握できそうです。
GitHub : stefanzweifel/laravel-stats