Laravelのコード補完が効かない問題を「laravel-ide-helper」で解決!
Laravelを使って開発を行っていたところ、コード補完が効かず、Undefined class
となって困りました。
同僚からlaravel-ide-helper
を入れるといいよ!と言われたので、早速導入してみました!
github.com
導入手順
composer で laravel-ide-helper をインストールする
composer.json
にbarryvdh/laravel-ide-helper
を追加します。
"require": { "php": "^7.1.3", "fideloper/proxy": "^4.0", "laravel/framework": "5.8.*", "laravel/tinker": "^1.0", "barryvdh/laravel-ide-helper": "^2.6.2" ★追加 ※2019/07/02時点のバージョンです },
composer.json に必要なパッケージを書いてcomposer update
をすると composer.json をもとに各パッケージを追加することができます。
$ composer update Loading composer repositories with package information Updating dependencies (including require-dev) : - Installing barryvdh/laravel-ide-helper (v2.6.2): Downloading (100%) : Package manifest generated successfully.
サービスプロバイダーに追加する
config/app.php
のproviders
にIdeHelperServiceProvider
を追加します。
'providers' => [
:
/*
* Package Service Providers...
*/
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class, ★追加
:
]
Laravel 5.5 からは追加不要です!
サービスプロバイダーとは?
Laravelのライフサイクルでは、ビジネスロジックが実行される前にサービスプロバイダーのクラスが呼ばれます。 サービスプロバイダはサービス(機能)ごとに初期処理を行なう目的で用意されています。
ヘルパーファイルを作成する
artisan
コマンドでヘルパーファイルを作成します。
$ php artisan ide-helper:generate A new helper file was written to _ide_helper.php
ヘルパーファイルとは?
どこからでも呼べる汎用的な関数郡をもつファイルのこと。
Laravelでも多くのヘルパー関数が用意されています。 readouble.com
これでクラスが認識され、コード補完もできるようになりました!
ひと通りの補完はこれで効くようになったかと思いますが、Modelの補完も効くようにするにはphp artisan ide-helper:models
をやればOKのようです!
Laravelを使う際には初期設定には入れたいですね!