【Laravel8】IDE補完ファイル作成パッケージ「barryvdh/laravel-ide-helper」の導入
概要
Laravel8にIDEの補完用ヘルパーファイル生成用のパッケージbarryvdh/laravel-ide-helper
を導入の流れをまとめます。
barryvdh/laravel-ide-helper
で何ができるのかはこちらの記事を読んだ方が早いです。
導入方法
基本的にはパッケージのGitHub通りにやればインストールできます。
このコマンドを実行すればインストール完了
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以下のバージョンの場合は、本パッケージのリリース情報から該当のバージョンのパッケージをインストールしてください。
ちなみに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
が良いかなと思います。
参考記事
Discussion
実際に入力したコマンドをよくみてもらえるとわかると思いますが、タイプミスですね。
"--wirte" ではなく
--write
を、 "--nowirte" ではなく--nowrite
ですね。ありがとうございます...
本当ですね...コピペしたつもりだったのですが完全にタイプミスですね...
お恥ずかしい...修正します...泣