Udemyのオススメ講座はこちら 詳細を見てみる

【Laravel】開発を便利にしてくれるComposerパッケージ

  • URLをコピーしました!

PHPのフレームワークであるLaravelでアプリケーション開発、API開発を行う時に、開発を便利にしてくれるComposerパッケージ(ライブラリ)を紹介します。

Laravelでの開発に役立てていただけたらと思います。

目次

barryvdh/laravel-ide-helper

laravel-ide-helperはIDE補完用ヘルパーファイルを生成するためのパッケージです。パッケージでできることはこちらの記事を見るのが早いと思うので引用させていただきます。

GitHubはこちら。

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

他のパッケージにも共通して言えますが、パッケージで実行するコマンドは長いものが結構あるので、composer.jsonscriptsに定義してcomposer 〜で実行できるようにしたり、makefileに定義してmake 〜で実行できるようにするのが良いと思います。(特にDocker・Docker Compose環境だとさらに頭にdocker-compose execをつける必要があるのでコマンドがかなり長くなってしまいます…)

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のコーディング規約どおりのコードかどうかチェックするためのサンプルですので適宜カスタマイズして問題ないです。

最近PSR-12というのもよく聞くので現時点のスタンダードな選択が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を使います。

dd()ddd()コマンドを使うことができない」と書きましたがAPIのテストコードでは使うことができますので念の為記載しておきます。

インストールは以下のコマンドで行います。

composer require itsgoingd/clockwork

次にGoogle Chromeの拡張機能を追加することで、デベロッパーツールにClockworkタブが追加され、デベロッパーツール上でAPIの処理速度や、ORMで発行されたSQLなどの情報を確認することができます。

ちょうどXdebugの言葉出てきたので、Laravel開発に(個人的に)必須だと思うXdebugをDocker環境に導入する方法をまとめた記事を載せておきます。

最後に

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

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

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

ブログを開設するなら「SWELL」が絶対オススメ!

この記事を書いた人

大学院(機械工学)→重工業→エンジニア→プロダクトマネージャー(PdM)

神戸グルメのインスタアカウントを運用しています↓
https://www.instagram.com/kobe_gourmet_life/

コメント

コメントする

目次