Laravel 開発環境の構築 ( VirtualBox + Vagrant + Homestead + Composer + Eclipse ) 第3回

# **はじめに**
第3回となる今回は, [ Laravel 5 IDE Helper Generator ] の導入方法を紹介します。

Eclipse や PHPStorm などの IDE を使用して開発を行う場合の強みは "入力補完" が使えることですが, これらの IDE は Laravel の Facades ( ファサード ) をデフォルトでは補完することができません。それどころか, Facades に "型を解決できません" などの警告が表示される始末です。これでは開発に集中することができません。

今回紹介する [ Laravel 5 IDE Helper Generator ] はこの問題を解消し, 入力補完を利用できるようにしてくれます。導入方法も簡単ですので, ぜひ導入してみてください。

* [第1回 -前編-](https://qiita.com/slangsoft/items/21e5cc5015ff71e2f741 "第1回 -前編-")
 * [第01章 事前準備](https://qiita.com/slangsoft/items/21e5cc5015ff71e2f741#%E7%AC%AC01%E7%AB%A0-%E4%BA%8B%E5%89%8D%E6%BA%96%E5%82%99 "第01章 事前準備")
 * [第02章 Laravel 開発環境の構築](https://qiita.com/slangsoft/items/21e5cc5015ff71e2f741#%E7%AC%AC02%E7%AB%A0-laravel-%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89 "第02章 Laravel 開発環境の構築")
* [第1回 -後編-](https://qiita.com/slangsoft/items/380fccbac323fd034530 "Laravel 開発環境の構築 ( VirtualBox + Vagrant + Homestead + Composer + Eclipse ) 第1回 -後編-")
 * [第03章 複数の Laravel プロジェクトに対応 ( サブドメイン利用 )](https://qiita.com/slangsoft/items/380fccbac323fd034530#%E7%AC%AC03%E7%AB%A0-%E8%A4%87%E6%95%B0%E3%81%AE-laravel-%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AB%E5%AF%BE%E5%BF%9C--%E3%82%B5%E3%83%96%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E5%88%A9%E7%94%A8- "第03章 複数の Laravel プロジェクトに対応 ( サブドメイン利用 )")
 * [参考サイト紹介](https://qiita.com/slangsoft/items/380fccbac323fd034530#%E5%8F%82%E8%80%83%E3%82%B5%E3%82%A4%E3%83%88%E7%B4%B9%E4%BB%8B "参考サイト紹介")
* [第2回](https://qiita.com/slangsoft/items/18ec6d9067d642c5cb74 "Laravel 開発環境の構築 ( VirtualBox + Vagrant + Homestead + Composer + Eclipse ) 第2回")
 * [Laravel 開発環境の構築 ( PHP5.6 + PHP7.0 + PHP7.1 )](https://qiita.com/slangsoft/items/18ec6d9067d642c5cb74#laravel-%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89--php56--php70--php71- "Laravel 開発環境の構築 ( PHP5.6 + PHP7.0 + PHP7.1 )")
* 第3回
 * [Eclipse で Laravel の入力補完が効くようにする ( laravel-ide-helper )](https://qiita.com/slangsoft/items/59369286d32d7d2760f6#eclipse-%E3%81%A7-laravel-%E3%81%AE%E5%85%A5%E5%8A%9B%E8%A3%9C%E5%AE%8C%E3%81%8C%E5%8A%B9%E3%81%8F%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B "Eclipse で Laravel の入力補完が効くようにする ( laravel-ide-helper )")

# **前提条件**
ここでは [第1回 (前編)](https://qiita.com/slangsoft/items/21e5cc5015ff71e2f741 "Laravel 開発環境の構築 ( VirtualBox + Vagrant + Homestead + Composer + Eclipse ) 第1回 -前編-") の [第02章](https://qiita.com/slangsoft/items/21e5cc5015ff71e2f741#%E7%AC%AC02%E7%AB%A0-laravel-%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89 "第02章 Laravel 開発環境の構築") で作成した [ TestProject ] に [ Laravel 5 IDE Helper Generator ] を導入します。

# **Eclipse で Laravel の入力補完が効くようにする**
まずは仮想マシンを起動しましょう。ターミナル ( Git Bash ) で Vagrantfile があるディレクトリ ( 今回の場合は [ Homestead ] ) に移動してから下記のコマンドを実行します。

```txt:ターミナル
slangsoft@win7 MINGW64 ~
$ cd ~/LaravelProjects/Homestead/  <-- 入力 : Vagrantfile があるディレクトリに移動

slangsoft@win7 MINGW64 ~/LaravelProjects/Homestead (master)
$ vagrant up  <-- 入力 : 仮想マシンの起動
```

次に, 仮想マシンに SSH でログインし,  [ Laravel 5 IDE Helper Generator ] を導入したいプロジェクト ( 今回の場合は [ TestProject ] ) に移動します。

```txt:RLogin
vagrant@homestead:~$ cd ~/code/TestProject  <-- 入力 : [ TestProject ] に移動
```

プロジェクトのディレクトリに移動したら, 以下のコマンドでインストールします。ここでは仮想環境上にインストールしていますが, VirtualBox の 共有フォルダー機能でローカルにも反映されます。

```txt:RLogin
vagrant@homestead:~/code/TestProject$ composer require barryvdh/laravel-ide-helper  <-- 入力
```

インストールが完了したら, config/app.php の providers 配列にサービスプロバイダを追加します。ここではローカルのファイルを変更していますが, VirtualBox の 共有フォルダー機能で仮想環境上の app.php にも反映されます。

```txt:修正対象ファイル
C:\Users\[ユーザー名]\LaravelProjects\TestProject\config\app.php
```

```php:app.phpより抜粋
/*
|--------------------------------------------------------------------------
| Autoloaded Service Providers
|--------------------------------------------------------------------------
|
| The service providers listed here will be automatically loaded on the
| request to your application. Feel free to add your own services to
| this array to grant expanded functionality to your applications.
|
*/

'providers' => [

    /*
     * Laravel Framework Service Providers...
     */
    Illuminate\Auth\AuthServiceProvider::class,
    (中略)
    Illuminate\View\ViewServiceProvider::class,

    /*
     * Application Service Providers...
     */
    App\Providers\AppServiceProvider::class,
    App\Providers\AuthServiceProvider::class,
    App\Providers\EventServiceProvider::class,
    App\Providers\RouteServiceProvider::class,

    /*                                                          <-- 追加
     * Other Service Providers...                               <-- 追加
     */                                                         <-- 追加
    Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,  <-- 追加

],
```

最後に以下のコマンドでヘルパーファイルを生成します。

```txt:RLogin
vagrant@homestead:~/code/TestProject$ php artisan ide-helper:generate  <-- 入力
```

これだけで入力補完が利用できるようになります。

**注意**
すでに IDE で作業中のプロジェクトに追加インストールした場合, ヘルパーファイルが読み込まれずに機能しない場合があるようです。対象のプロジェクトを IDE 上から一旦削除し, 再度インポートしなおすことで正しく機能するようになります。

# **参考サイト紹介**
* [Laravel 5 IDE Helper Generator](https://github.com/barryvdh/laravel-ide-helper "Laravel 5 IDE Helper Generator")