補完でサクサク!Laravel IDE Helperを使う

laravel-ide-helperプログラミング

こんにちは、りょーです。

渋谷のITベンチャーで働くWebエンジニアです。
Laravel/Vue.jsを主に使っています。
AWSも学習中です。

開発をしているなかで様々なエラーと遭遇するかと思いますが、原因がタイポだったりnullの考慮漏れということも少なくないのではないでしょうか?

今回はそんな悩みを少しでも減らしてくれるLaravel IDE Helperという助っ人を紹介します。

※この記事ではIDEはPHPStormを前提で進めています。
VSCode等でも同じやり方で再現できると思います。

IDE(総合開発環境)とは

IDE(Integrated Development Environment/統合開発環境)とは、ソースコードを記述するエディタ、ソースコードからプログラムを生成するコンパイラ、コードの不正を発見・修正するデバッガなどのプログラム開発ツールをひとまとめにした開発環境のことをいう。

https://www.itreview.jp/categories/ide#tutorial

Laravel IDE Helperとは

Laravel IDE HelperとはIDEでコード補完用のファイルを生成してくれるライブラリです。

GitHub - barryvdh/laravel-ide-helper: IDE Helper for Laravel
IDE Helper for Laravel. Contribute to barryvdh/laravel-ide-helper development by creating an account on GitHub.

基本的にLaravelは内部でマジックメソッドが多様されているため、補完が聞かないことによるタイポやnullの考慮が漏れていたりしてバグが発生しやすいです。

Laravelではファサードをよく使用しますが、通常IDEはファサードを補完することができません。

Laravel IDE Helperはヘルパーファイルを作成し、IDEがファサードの補完ができるようになったり、メソッドの定義元にジャンプすることも可能です。

Laravel IDE Helperを使うと何がいいのか

上記でも少し述べましたが、このライブラリを使うことでリレーションやファサード、モデルのfield変数の型の補完が効くようになります。

こうなることで何がいいかと言うと、実装自体が楽になり、打ち間違いなどのミスがかなり減らすことができます。

結果的にバグを減らすことにも繋がります。

バグを少しでも減らすことでプロジェクトの運営がスムーズになります。

使い方

使い方はかなり簡単です。

Laravel IDE Helperリポジトリのreadme.mdに詳しいことは書かれています。

1. インストール

composer require --dev barryvdh/laravel-ide-helper

上記コマンドを実行することでcomposer.jsonに下記が追加されます。

"barryvdh/laravel-ide-helper": "^2.8"

2. helperファイル作成

インストールが完了したら下記コマンドを実行します。

php artisan ide-helper:generate  # PHPDoc generation for Laravel Facades

_ide_helper.phpが作成される。

php artisan ide-helper:models --nowirte  # PHPDocs for models

_ide_helper_models.phpが作成される。

PHPStormの場合

php artisan ide-helper:meta  # PhpStorm Meta file

.phpstorm.meta.phpが作成される。

ide-helper:modelsに関しては新たにモデルが追加されたら再度実行します。

追加したタイミングで実行しないとそのモデルはhelperファイルに記述されていないため補完が効きません。

また、データベースに接続していないと実行できないためappコンテナ内で実行する必要があります。

※注意点

本記事では「ide-helper:models –nowirte」とオプションをつけて実行しています。

このオプションの動作は型の指定を別ファイルに記述します。

オプションをなしで実行するとモデルファイルに直接型を埋めるためコードが汚くなってしまうため個人的には「–nowrite」を指定して実行しています。

以上の手順だけでLaravel IDE Helperの恩恵を受けられます。

僕の場合はPHPStormを使っていますが、プラグインも利用すればミスも減らすことができ、開発スピードも向上しました。

僕はVimとLaravel、PHP Inspectionsというプラグインを入れています!

JetBrains製は有料ですが、それだけの価値はあると思います。

LaravelをIDEで開発している人は一度は試して見てください!

コメント

タイトルとURLをコピーしました