Laravel IDE helper 讓你的 IDE 認識 Laravel & Lumen

Author Avatar
Yish 12月 02, 2016
  • 在其他設備中閱讀本文章

Laravel 本身提供的許多設計模式看起來相當棒,但有個問題就是無法支持直接跳轉過去看原本代碼或者依賴是什麼,導致想要理解時要找很久,所幸有 barryvdh 大神開發出 laravel-ide-helper 來輔助理解和追蹤。

Github

安裝方法其實相當簡單

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

這邊我建議安裝在開發環境中,正式環境不需要這項輔助套件
Laravel 4.x = version 1.11

config/app.php providers 加入:

1
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,

如果說已經放入了其實也可以透過 app/Providers/AppServiceProvider.php 初始化時的 register() 做排除不去註冊 Provider:

1
2
3
4
5
6
7
public function register()
{
if ($this->app->environment() !== 'production') {
$this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
}
// ...
}

最後執行產生 helper 檔案:

1
$ php artisan ide-helper:generate

接著每當你更新或加入套件、甚至是自己寫了一些 Facade 一樣要重新跑 generate,這或許有些麻煩,你可以把這個指令加入 composer.json 在運作 php artisan clear-compiled 順便執行這個指令:

1
2
3
4
5
6
7
8
"scripts":{
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan ide-helper:generate",
"php artisan ide-helper:meta",
"php artisan optimize"
]
},

此外套件也提供產生 phpDoc,這也是一個相當方便的輔助:

以 model 來說,像是寫了 $post->id, phpStorm 會無法分辨 id 是什麼,進而顯示黃色底,告知你這個可能會有問題,但只要透過 phpDoc 就可以解決這個狀況:

先安裝 dbal 去取得資料庫欄位

1
$ composer require doctrine/dbal

接著執行指令:

1
$ php artisan ide-helper:models Post

就會在 Post.php 看到產生的輔助欄位文檔了

套件官方文檔提供了相當的方法可以參考,各位可以依據需求做加入或選擇,甚至不想安裝直接下載已經產生好的 helper 檔案也可以,相當方便。