Laravel 超好用代码提示工具 Laravel IDE Helper

file

Laravel IDE Helper 是一个极其好用的代码提示及补全工具,可以给编写代码带来极大的便利。

Github 戳这里

安装

安装 larave-ide-helper

# 如果只想在开发环境安装请加上 --dev
composer require barryvdh/laravel-ide-helper

安装 doctrine/dbal 「请装上它,在为模型注释字段的时候必须用到它」

# 如果只想在开发环境安装请加上 --dev
composer require "doctrine/dbal: ~2.3"

在 「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);
    }
    // ...
}

导出配置文件(如果默认配置就满足需求了,也可以忽略这一步)

php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --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 容器中解决了什么类型的对象。例如:事件将返回一个「Illuminate\Events\Dispatcher」对象,利用 meta 文件您可以调用 app(‘events’) 并且它将自动完成 Dispatcher 的方法。

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');

提示:您可能需要重启 Phpstorm 使 .phpStorm.meta.php 文件生效。

自动运行 generate

想在依赖包更新时自动更新注释,可以在 composer.json 文件中做如下配置:

"scripts":{
    "post-update-cmd": [
        "Illuminate\\Foundation\\ComposerScripts::postUpdate",
        "php artisan ide-helper:generate",
        "php artisan ide-helper:meta"
    ]
}

提示:如果只在 dev 环境下部署 ide helper 还是不要这么做了,防止在生产环境中报错导致不必要的麻烦。

结尾

整个使用大概就是这样了,其实在 Laravel 5.5 以上版本只需要装上 “larave-ide-helper” 和 “doctrine/dbal: ~2.3” 这两个包,不用做什么配置就可以愉快的玩耍了。

如发现文中错误,请!斧!正!

原文链接

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 5年前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 30
leo

是的,我写代码速度快有一半是它的功劳

5年前 评论
Jourdon

如果只需要简单的代码提示的话,把 _ide_helper.php 扔到项目目录下就可以了,不需要安装扩展包。

5年前 评论
Destiny

@Jourdon 还是安装一下比较好,会根据你 Models 生成一下字段注释,代码提示超级爽。

5年前 评论
Jourdon

@Destiny 所以我特意说了 如果只需要简单的提示

5年前 评论
Destiny

@Jourdon :kissing_heart:

5年前 评论

不用这东西,我感觉都不会写代码了,,还有debugbar,,,

5年前 评论
小民爱Laravel

赞,我的就是迁移文件没有提示,每次都要查文档。有时间去试试。

5年前 评论
DianWang

不知道是不是只有我有这种情况,使用过程中PhpStorm非常卡顿,卸载后又恢复流畅了 :cry:

5年前 评论

@DianWang 会有一点影响,但是好像没有到非常卡顿的地步啊。

5年前 评论

我觉得sublime就很好

5年前 评论

谢谢大神分享,安装后,有两个小问题,如下图,应该如何配置呢?谢谢。
file
file

5年前 评论

@hustnzj User::query() 就有提示了,Auth 那个你就 use Auth; 就可以了,不要 use Illuminate\Support\Facades\Auth; 就不会有这种提示了。

5年前 评论

提示新手: 如果只在开发环境中使用,可以只配置「app/Providers/AppServiceProvider.php」的「register」方法,不需要更改在 「config/app.php」的 「providers」数组。

In Laravel, instead of adding the service provider in the config/app.php file, you can add the following code to your app/Providers/AppServiceProvider.php file, within the register() method:

5年前 评论

@Zark
你好,我也是类似的情况,如果 User::query() 过后的提示其实就没有走 _ide_helper ,走的是原生的 Builder 的提示了

5年前 评论

安装后,_idea_helper.php 文件疯狂报错怎么处理的呢

5年前 评论

结尾,5.5以上版本只要安装插件即可咯?

5年前 评论

composer require --dev barryvdh/laravel-ide-helper
php artisan ide-helper:generate - 为 Facades 生成注释
php artisan ide-helper:meta - 生成 PhpStorm Meta file
重启 phpstorm
index.php 文件 $kernel->handle 还是点不进去函数

4年前 评论

路由提示正常吗?今天突然感觉路由提示不管用了。

4年前 评论
西部荒野 4年前
zhangfy 3年前
zhangfy 3年前
XFLY 3年前
pikazo 3年前

发现一个问题 如果model文件中创建了其他的方法 在执行ide-helper:models 的时候就会报错

4年前 评论

安装完就出现这样子,怎么搞? file

file

3年前 评论

请问图一中的字体是什么呢?

3年前 评论
梦想止于行动

Model::where 这种写法不提示

1年前 评论
JeffDean 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!