🚀

【Laravel8】IDE補完ファイル作成パッケージ「barryvdh/laravel-ide-helper」の導入

3 min read 2

概要

Laravel8にIDEの補完用ヘルパーファイル生成用のパッケージbarryvdh/laravel-ide-helperを導入の流れをまとめます。

barryvdh/laravel-ide-helperで何ができるのかはこちらの記事を読んだ方が早いです。

https://qiita.com/mejileben/items/a01f03d203ead8cb7081

導入方法

基本的にはパッケージのGitHub通りにやればインストールできます。

https://github.com/barryvdh/laravel-ide-helper

このコマンドを実行すればインストール完了

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

※バージョン指定せずにコマンドを実行すると最新バージョンのパッケージがインストールされるので、Laravelのバージョンによってはこのようなエラーが出ます。

Using version ^2.10 for barryvdh/laravel-ide-helper
./composer.json has been updated
Running composer update barryvdh/laravel-ide-helper
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires barryvdh/laravel-ide-helper ^2.10 -> satisfiable by barryvdh/laravel-ide-helper[v2.10.0].
    - barryvdh/laravel-ide-helper v2.10.0 requires illuminate/console ^8 -> found illuminate/console[v8.0.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require.


Installation failed, reverting ./composer.json and ./composer.lock to their original content.

Laravel7以下のバージョンの場合は、本パッケージのリリース情報から該当のバージョンのパッケージをインストールしてください。

https://github.com/barryvdh/laravel-ide-helper/releases

ちなみにLaravel7の場合は以下のコマンドでv2.8.2をインストールすれば導入できます。

composer require --dev barryvdh/laravel-ide-helper:"2.8.2"

基本的な使い方

これもパッケージのGitHub通りですが、基本的には以下の2つのコマンドかなと。

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

# PHPDocs for models
php artisan ide-helper:models

2つ目のコマンドを実行すると、yesかnoの入力を求められます。

Do you want to overwrite the existing model files? Choose no to write to _ide_helper_models.php instead (yes/no) [no]:
  • yes・・・モデルファイルに補完用コードが追加される
  • no・・・_ide_helper_models.phpという補完用の別ファイルを新規作成 or 更新

プロジェクトによりますが、モデルファイルが補完用のコードで汚くなるので(上記出力でもnoを推奨しているぽいので)基本的にはnoでいいと思います。

このコマンドはモデルを追加したタイミングで毎回実行する必要があるのですが、毎回yes、noを入力するのはめんどくさいです(よね?)。

コマンド実行時にyes、noを決めることのできるオプションがあるのですが、ここで注意ポイントがあります。

GitHubには以下の記載があり、

  • yes・・・--write or -Wオプションをつける
  • no・・・--nowrite or -Nオプションをつける

をつけることでyes、noを先に決めたうえでコマンドを実行するができます。

By default, you are asked to overwrite or write to a separate file (_ide_helper_models.php). You can write the comments directly to your Model file, using the --write (-W) option, or force to not write with --nowrite (-N).

--write--nowriteより-W-Nの方が早く書けるので、以下を使えば良いかと。

# モデルファイルに直接書き込み
php artisan ide-helper:models -W

# _ide_helper_models.phpに書き込み
php artisan ide-helper:models -N

参考記事の方に同意ですが、個人的にはモデルファイルがゴチャゴチャしない-Nが良いかなと思います。

参考記事

https://r-tech14.com/laravel-ide-helper/

Discussion

理由はわからないのですが、--writeおよび--nowriteが使えません。。

実際に入力したコマンドをよくみてもらえるとわかると思いますが、タイプミスですね。
"--wirte" ではなく --write を、 "--nowirte" ではなく --nowrite ですね。

ありがとうございます...
本当ですね...コピペしたつもりだったのですが完全にタイプミスですね...
お恥ずかしい...修正します...泣

ログインするとコメントできます