PHPのフレームワークであるLaravelでアプリケーション開発、API開発を行う時に、開発を便利にしてくれるComposerパッケージ(ライブラリ)を紹介します。
Laravelでの開発に役立てていただけたらと思います。
barryvdh/laravel-ide-helper
laravel-ide-helperはIDE補完用ヘルパーファイルを生成するためのパッケージです。パッケージでできることはこちらの記事を見るのが早いと思うので引用させていただきます。

GitHubはこちら。
パッケージの導入方法は別の記事にまとめています。

squizlabs/php_codesniffer
php_codesnifferはコードの構文チェック・自動修正を行うことができるパッケージです。
GitHubはこちらです。
導入〜使い方を簡単に書きます。
インストール
composer require --dev squizlabs/php_codesniffer
チェックに使用できるコーディング規約を確認する
./vendor/bin/phpcs -i
# 出力
The installed coding standards are MySource, PEAR, PSR1, PSR12, PSR2, Squiz and Zend
構文チェックのルール設定
プロジェクトルートにruleset.xml
を作成して設定を定義します。以下はPSR-2のコーディング規約どおりのコードかどうかチェックするためのサンプルですので適宜カスタマイズして問題ないです。
<?xml version="1.0"?>
<ruleset name="PSR12/Laravel">
<description>PSR2 compliant rules and settings for Laravel</description>
<arg name="extensions" value="php" />
<!-- 適用コーディング規約の指定 -->
<rule ref="PSR2">
<!-- 除外するルール定義 -->
<!-- 1行の最大文字数(120文字)以内かどうかのチェック -->
<exclude name="Generic.Files.LineLength.TooLong" />
</rule>
<!-- 出力に色を適用 -->
<arg name="colors" />
<!-- オプション p:進捗表示 s:エラー表示時にルールを表示 -->
<arg value="ps" />
<!-- チェックするファイル (例:appと定義するとappディレクトリの全ファイルをチェックする) -->
<file>app</file>
<file>config</file>
<file>database/factories</file>
<file>routes/api.php</file>
<file>tests</file>
</ruleset>
ルールの設定は以下のGitHubのページを参考にするのが良いです。
構文チェック実行
# --standardでルールファイルを指定する
./vendor/bin/phpcs --standard=ruleset.xml
自動修正実行
先ほどのコマンドで構文チェックでした時にPHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
が表示されたエラーのみ以下のコマンドで自動修正が可能です。
./vendor/bin/phpcbf --standard=ruleset.xml
コマンドを実行した時点でファイルの修正が完了しています。(Gitの差分としても識別されます)
nunomaduro/larastan
larastanはLaravelコードの静的解析を行うことができるパッケージです。解析内容は一例ですが以下のようなものがあります。
- 定義しているけど未使用の変数がないかどうか
- 必ず
true
(もしくはfalse
)になって意味がないif
文の条件がないかどうか - データの型が合っているかどうか
GitHubはこちらです。
こちらのパッケージも導入〜使い方を簡単に書きます。
インストール
composer require --dev nunomaduro/larastan
設定ファイルの作成
プロジェクトルートにphpstan.neon
を作成して解析対象ファイルのパス、解析レベルを設定します。以下はapp
ディレクトリ(Controller、Service、Model等)、tests
ディレクトリ (テストコード)を解析レベル5で解析することを定めたサンプルです。
includes:
- ./vendor/nunomaduro/larastan/extension.neon
parameters:
paths:
- app
- tests
# The level 8 is the highest level
level: 5
解析レベルは0〜9まであり、それぞれの基準はドキュメントにまとめられています。
解析実行
# phpstan.neonに設定したパスやレベルで解析する
./vendor/bin/phpstan analyse
# phpstan.neonがない場合はパスの指定が必要(レベルは5?)
./vendor/bin/phpstan analyse app
実行するとどのファイルのどの行でどんな結果(修正した方が良い箇所のみ)が出力されます。
barryvdh/laravel-debugbar
laravel-debugbarはデバッグ情報をブラウザで確認できる優れものです。API開発ではLaravelで画面を実装しないので使うことができない認識なのですが、bladeで画面を作成するアプリケーションの場合はマストで入れるべきパッケージだと思います。
GitHubはこちらです。
このパッケージは以下のコマンドでインストールできます。使い方は少しググるとたくさん記事が出るのでこの記事では割愛します。
composer require barryvdh/laravel-debugbar --dev
itsgoingd/clockwork
clockworkもlaravel-debugbar同様、デバッグサポート用のパッケージです。API開発でのデバッグではlaravel-debugbarや、dd()
、ddd()
コマンドを使うことができないので、clockworkやXdebugを使います。
インストールは以下のコマンドで行います。
composer require itsgoingd/clockwork
次にGoogle Chromeの拡張機能を追加することで、デベロッパーツールにClockworkタブが追加され、デベロッパーツール上でAPIの処理速度や、ORMで発行されたSQLなどの情報を確認することができます。
ちょうどXdebugの言葉出てきたので、Laravel開発に(個人的に)必須だと思うXdebugをDocker環境に導入する方法をまとめた記事を載せておきます。

最後に
APIドキュメント作成用のパッケージもいくつかあるのですが、最近はstoplightというサービスが使い勝手が良いとよく聞くのでこの記事では紹介していません。

P.S.
この記事で紹介したパッケージ以外にも開発の効率を上げてくれるパッケージはあると思いますので、ご自身で調べたり導入してみてください。
コメント