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" 这两个包,不用做什么配置就可以愉快的玩耍了。

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

原文链接

Laravel 超好用代码提示工具 Laravel IDE Helper相关推荐

  1. 开源 sql 代码提示工具_有关如何计划开源活动的提示

    开源 sql 代码提示工具 在今年的OSCON上 ,Kara Sowles和Francesca Krihely就如何计划和举办技术活动举办了精彩的研讨会. 我参加过的许多技术活动看起来都是完全无缝的, ...

  2. IDE工具(44) idea安装使用aiXcoder代码提示工具

    一.前言 aiXcoder是一个AI驱动的代码提示工具.支持的编程语言有Java,Python,C++,Php.支持的编辑器有IntelliJ IDEA,Eclipse,PyCharm,Android ...

  3. 推荐一款免费的AI代码提示工具Codeium

    由于微软的copilot 价格不菲,一年700块钱左右.不差钱的小伙伴还是copilot走起~ 今天介绍一款免费的AI代码提示工具,它就是 Codeium Codeium对个人是免费使用的,没有次数限 ...

  4. php代码提示助手,laravel自动补全助手ide-helper安置及配置

    ---------------------------安装ide-helper------------------------------------ https://packagist.org/pa ...

  5. mysql代码提示_聊一聊 php 代码提示

    title: 聊一聊 php 代码提示 date: 2017-8-25 15:05:49 这次我们来聊一聊 php 的代码提示, 不使用 IDE 的同学也可以瞧瞧看, PHP IDE 推荐 phpst ...

  6. netbeans代码提示_NetBeans可用性提示

    netbeans代码提示 的Java IDE都来了,因为在很长的路要走天的JBuilder的 (尽管JBuilder中似乎是一个值得欢迎提前在时间). 当今的Java IDE(例如NetBeans , ...

  7. 代码提示_PHPStorm 支持 Laravel Facades 的代码提示

    好久没用 Laravel 和 PHPStorm 了,最近开发了小项目,用的时候发现 Laravel 的 Facades 是没有代码补全提示的,原因是 Facades 是基于 静态方法重载 __call ...

  8. Laravel中使用SweetAlert美化提示框Alert

    Laravel中使用SweetAlert美化提示框Alert 个人博客 https://blog.fmujie.cn/ The first step 使用composer安装Laravel到www目录 ...

  9. 超好用的代码统计工具——cloc

    超好用的代码统计工具--cloc 因为申请软件著作权的时候需要进行代码统计,所以找了一圈代码统计工具.先找到了SourceCount,似乎不再更新了用不了.然后找到了cloc,操作有点繁琐,以下总结一 ...

最新文章

  1. python3 异步错误 asyncio.Semaphore RuntimeError: Task got Future attached to a different loop
  2. linux(gentoo)安装配置conky
  3. Nomad技术手册:整体架构(Architecture)
  4. 更改Java包名称如何改变我的系统架构
  5. 微信小程序正确的异步request请求,根据经纬度获取地理位置信息
  6. 异常:fatal: unable to access 'https://git.oschina.net/pcmpcs/library.git/': Could not resolve host...
  7. 如何访问SSH公钥?
  8. webgote的例子(5)Sql注入(Blog)
  9. Matlab来实现DDS功能
  10. vsftpd配置系统用户为登陆用户
  11. 如何复制出计算机缓存中的歌曲,怎么把哔哩哔哩里缓存的视频中的音频单独提取出来。...
  12. mac 打开虚拟机之后,原MAC没有声音解决方法
  13. linux怎样安装麒麟双系统,win10系统装麒麟系统双系统的具体办法
  14. 人物-IT-张朝阳:张朝阳
  15. 国外教育邮箱购买?国外邮箱哪个好?
  16. 微软:今天起加速推广Windows 11,让更多设备免费升级
  17. SSM SpringBoot vue办公自动化计划管理系统
  18. 抖音上热门规则优化及矩阵爆粉秘籍
  19. 银行管理系统 Java语句
  20. 无线显示但是无法上网络连接服务器,无线已连接上但还是不能上网该怎么处理...

热门文章

  1. oracle 列 连续,sql 查寻某列连续的几个值是否相同
  2. android电池剩余使用时间,android电池剩余使用时间
  3. 只收藏不点赞的人是什么心理???
  4. 打印pdf就一页_我就是死都不想在mac上装第三方pdf软件
  5. const定义常量_go语言基本语法——常量constant
  6. L2-008 最长对称字串 以下标i展开
  7. 修改同一张表的同一个字段的两个不同的值。
  8. docker高级应用之智能添加与修改防火墙规则
  9. inux下只显示文件
  10. 保护系统 用数据库加密实现数据安全