简介
- Laravel IDE Helper 是一个极其好用的代码提示及补全工具,可以给编写代码带来极大的便利。其中包括如下
- 生成Facades注释
php artisan ide-helper:generate
- 生成数据模型注释
php artisan ide-helper:models
- 生成 PhpStorm Meta file
php artisan ide-helper:meta
- 链式操作自动提示,比如编写数据迁移代码
前期准备
- 安装
larave-ide-helper
composer require barryvdh/laravel-ide-helper
# 如果只想在开发环境安装请加上`--dev`
composer require barryvdh/laravel-ide-helper --dev
- 安装
doctrine/dbal
,模型注释需要使用,
composer require "doctrine/dbal: ~2.3"
# 如果只想在开发环境安装请加上`--dev`
composer require "doctrine/dbal: ~2.3" --dev
- 在
config/app.php
的providers
数组中加入
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class
- 如果你的 Laravel 版本小于 5.5 的话,请注册服务提供者,否则请忽略
- 如果你只在开发环境中安装
larave-ide-helper
,那么可以在app/Providers/AppServiceProvider.php
的register
方法中写入下面代码:
public function register()
{
if ($this->app->environment() !== 'production') {
$this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
}
// ...
}
- 导出配置文件(如果默认配置就满足需求了,也可以忽略这一步,建议执行这步)
- 执行成功会在
/config/
目录下生成一个ide-helper.php
的文件,在文件中可以进行一些配置的修改,比如下面编写(编写链式代码自动提示(数据迁移代码))配置,直接改这个即可,不需要去vendor/barryvdh/laravel-ide-helper/config/ide-helper.php
进行修改。
- 执行成功会在
php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config
配置
生成Facades注释
- 在命令行下运行
php artisan ide-helper:generate
- 如果存在文件
bootstrap/compiled.php
需要先删除, 可以在生成文当前运行php artisan clear-compiled
。 - 会在项目根目录下生成
_ide_helper.php
文件。
自动生成数据模型注释
- 命令行执行,运行的时候保证MySQL启动
php artisan ide-helper:models
-
出现提示,填写
yes
,然后回车,建议输入yes
会在模型文件中写入注释,否则会生成_ide_helper_models.php
文件。这样在跟踪文件的时候不会跳转到_ide_helper_models.php
文件,不过这么做最好对模型文件做个备份,至少在生成注释之前用 git 控制一下版本,以防万一。
-
运行成功之后会在模型中生成对应的注释。并且在使用的时候可以快速跳转。如图
编写链式代码自动提示(数据迁移代码)
-
平常编写数据迁移代码时,给字段设置属性时只有第一个方法会提示,后面的都不能提示了。如图
-
就算调用过了
php artisan ide-helper:generate
,在调用像->unique()
这样的链式操作的时候也无法实现代码提示,我们需要配置根目录下vendor/barryvdh/laravel-ide-helper/config/ide-helper.php
文件,如果上述操作导出配置文件这步骤的话,配置文件就是config/ide-helper.php
修改即可。 -
打开根目录
vendor/barryvdh/laravel-ide-helper/config/ide-helper.php
或者config/ide-helper.php
找到include_fluent => false
修改为'include_fluent => true
,然后重新执行php artisan ide-helper:generate
即可,如图 -
运行导出配置命令,修改如图配置文件
-
没有运行导出配置命令,配置文件在vender里面,编辑会出现只读,选择第一个希望编辑点击ok。
-
修改后
-
执行
php artisan ide-helper:generate
、测试、成功
生成 .phpStorm.meta.php
- 可以生成一个 PhpStorm meta 文件去支持工厂模式。对于 Laravel, 这意味着我们可以让 PhpStorm 理解我们从 IoC 容器中解决了什么类型的对象。例如:事件将返回一个「Illuminate\Events\Dispatcher」对象,利用 meta 文件您可以调用 app (‘events’) 并且它将自动完成 Dispatcher 的方法。配置完成重启PhpStorm
app('events')->fire();
\App::make('events')->fire();
/** @var \Illuminate\Foundation\Application $app */
$app->make('events')->fire();
// When the key is not found, it uses the argument as class name
app('App\SomeClass');
- 自动运行 generate,想在依赖包更新时自动更新注释,可以在 composer.json 文件中做如下配置:如果只在 dev 环境下部署 ide helper 还是不要这么做了,防止在生产环境中报错导致不必要的麻烦。
"scripts":{
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan ide-helper:generate",
"php artisan ide-helper:meta"
]
}