分享laravel超好用程序提示工具Laravel IDE Helper

安裝

安裝 larave-ide-helper

# 如果只想在開發環境   安裝請加上 --dev   composer require barryvdh/laravel-ide-helper

安裝 doctrine/dbal 「請裝上它,在為模型注釋字段的時候必須用到它」

# 如果只想在開發環境安裝請加上 --dev   composer require "doctrine/dbal: ~2.3"

在 「config/app.php」的 「providers」數組中加入

BarryvdhLaravelIdeHelperIdeHelperServiceProvider::class

如果你的 Laravel 版本小于 5.5 「如果沒記錯」的話,請注冊服務提供者,否則請忽略

如果你只在開發環境中安裝「larave-ide-helper」,那么可以在「app/Providers/AppServiceProvider.php」的「register」方法中寫入下面代碼:

public function register()   {       if ($this->app->environment() !== 'production') {           $this->app->register(BarryvdhLaravelIdeHelperIdeHelperServiceProvider::class);       }       // ...   }

導出配置文件(如果默認配置就滿足需求了,也可以忽略這一步)

php artisan vendor:publish --provider="BarryvdhLaravelIdeHelperIdeHelperServiceProvider" --tag=config

好了,接下去可以愉快的使用了

使用

php artisan ide-helper:generate – 為 Facades 生成注釋

php artisan ide-helper:models – 為數據模型生成注釋

php artisan ide-helper:meta – 生成 phpstorm Meta file

自動為 Laravel 的 Facades 生成注釋

在命令行下運行

php artisan ide-helper:generate
  • 注:如果存在文件 「bootstrap/compiled.php」 需要先刪除, 可以在生成文當前運行 php artisan clear-compiled。

自動為模型生成注釋

為所有模型生成注釋 php artisan ide-helper:models, 這時會出現詢問:

Do you want to overwrite the existing model files? Choose no to write to _ide_helper_models.php instead? (Yes/No):  (yes/no) [no]:

輸入 yes 則會直接在模型文件中寫入注釋,否則會生成「_ide_helper_models.php」文件。建議選擇 yes,這樣在跟蹤文件的時候不會跳轉到「_ide_helper_models.php」文件,不過這么做最好對模型文件做個備份,至少在生成注釋之前用 git 控制一下版本,以防萬一。

  • 提示: 為模型生成字段信息必須在數據庫中存在相應的數據表,不要生成 migration 還沒運行 migrate 的時候就生成注釋,這樣是得不到字段信息的。

自動為鏈式操作注釋

這是什么意思呢?舉個例子,在 migration 文件中經常可以看見這樣的代碼:

$table->string('email')->unique();

這時候就算調用過了 php artisan ide-helper:generate,在調用像 ->unique() 這樣的鏈式操作的時候也無法實現代碼提示,這時候需要將配置文件「如果導出的話」’include_fluent’ => false 修改為 ‘include_fluent’ => true,重新運行 php artisan ide-helper:generate。試試效果吧!

生成 .phpStorm.meta.php

可以生成一個 PhpStorm meta 文件去支持工廠模式。對于 Laravel, 這意味著我們可以讓 PhpStorm 理解我們從 IoC 容器中解決了什么類型的對象。例如:事件將返回一個「IlluminateEventsDispatcher」對象,利用 meta 文件您可以調用 app (‘events’) 并且它將自動完成 Dispatcher 的方法。

app('events')->fire();   App::make('events')->fire();   /** @var IlluminateFoundationApplication $app */   $app->make('events')->fire();   // When the key is not found, it uses the argument as class name   app('AppSomeClass');   提示:您可能需要重啟 Phpstorm 使 .phpStorm.meta.php 文件生效。   自動運行 generate

想在依賴包更新是自動更新注釋,可以在 composer.json 文件中做如下配置:

"scripts":{       "post-update-cmd": [           "IlluminateFoundationComposerScripts::postUpdate",           "php artisan ide-helper:generate",           "php artisan ide-helper:meta"       ]   }

提示:如果只在 dev 環境下部署 ide helper 還是不要這么做了,防止在生產環境中報錯導致不必要的麻煩。

結尾

整個使用大概就是這樣了,其實在 Laravel 5.5 以上版本只需要裝上 “larave-ide-helper” 和 “doctrine/dbal: ~2.3” 這兩個包,不用做什么配置就可以愉快的玩耍了。

如發現文中錯誤,請!斧!正!

以上就是分享

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享