为PhpStorm添加Laravel 代码智能提示功能
php artisan clear-compiled //清除bootstrap/compiled.php
php artisan ide-helper:generate //为 Facades 生成注释,需要先清除bootstrap/compiled.php
php artisan ide-helper:models //为模型生成注释
php artisan ide-helper:meta //生成 .phpStorm.meta.php
一、为PHPSTORM安装Laravel Plugin插件

二、应用 composer 安装 barryvdh/laravel-ide-helper和doctrine/dbal
packagist官网地址:https://packagist.org/
使用如下命令安装barryvdh/laravel-ide-helper:
composer require --dev barryvdh/laravel-ide-helper
使用如下命令安装doctrine/dbal「请装上它,在为模型注释字段的时候必须用到它」:
composer require "doctrine/dbal: ~2.5"
三、允许应用程序在非生产环境中加载Laravel IDE Helper
在app/Providers/AppServiceProvider.php文件中的register()方法中添加下面的代码:
//允许应用程序在非生产环境中加载Laravel IDE Helper
if ($this->app->environment() !== 'production') {
$this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
}
四、使用publish命令将软件包配置复制到本地配置:
php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config
修改配置文件ide-helper.php(自动为链式操作注释):
'include_fluent' => true,
五、为 Facades 生成注释
必须首先清除bootstrap/compiled.php,运行以下命令进行清除:
php artisan clear-compiled
为 Facades 生成注释:
php artisan ide-helper:generate
六、为模型生成注释
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 的时候就生成注释,这样是得不到字段信息的。
七、生成 .phpStorm.meta.php
php artisan ide-helper:meta
可以生成一个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.meta.php 文件不生效的话,则可能需要重启PHPSTORM。
八、自动运行 generate
想在依赖包更新时自动更新注释,可以在 composer.json 文件中做如下配置:
在scripts标签中添加下面的代码:
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan ide-helper:generate",
"php artisan ide-helper:meta"
]
其他操作相关文档:
https://packagist.org/packages/barryvdh/laravel-ide-helper
https://laravel-china.org/articles/10172/laravel-super-good-code-prompt-tool-laravel-ide-helper
为PhpStorm添加Laravel 代码智能提示功能的更多相关文章
- PhpStorm下Laravel代码智能提示
phpstorm&Laravel PHPstorm是我见过的最好的PHP的IDE,前年用的时候就毫不犹豫的抛弃了zend studio :) ,Laravel是我用过最好的框架,除了做手游后台 ...
- Laravel ---【转】PhpStorm下Laravel代码智能提示
[转]http://blog.csdn.net/pangchengyong0724/article/details/54706775 第一步:在项目的composer.json中添加如下一行 &quo ...
- 一个.net程序员的安卓之旅-Eclipse设置代码智能提示功能
一个.net程序员的安卓之旅-代码智能提示功能 过完年回来就决心开始学安卓开发,就网上买了个内存条加在笔记本上(因为笔记本原来2G内存太卡了,装了vs2010.SQL Server 2008.orac ...
- vi代码智能提示功能及相关配置
vim是一款支持插件.功能无比强大的编辑器,无论你的系统是linux.unix.mac还是windows,都能够选择他来编辑文件或是进行工程级别 的coding.如果能把vim用好了,不仅编程效率能得 ...
- 为VS code中的项目添加特定的智能提示功能
当我们的在用vscode开发项目的时候, 如果项目中引用了jquery包, 我们可以下面的方式获得jquery的类型提示 npm install @types/jquery --save-dev 或我 ...
- VS2013中实现angular代码智能提示
第一步:在项目同添加angular js文件的引用: 这里使用NuGet包管理器来给项目添加angular js install-package angularjs 第二步:添加智能提示js文件 我们 ...
- pycharm开启代码智能提示和报错提示
天呐,经历了一大波周折,终于把提示给弄好了,加入没有提示的话,pycharm就是一个空格了,没有什么作用,对我来说,真的是很困难的事情,所以无论如何都要去把这个智能提示给搞好了. 先讲讲我的经历吧.我 ...
- 后盾网lavarel视频项目---Laravel 安装代码智能提示扩展「laravel-ide-helper」
后盾网lavarel视频项目---Laravel 安装代码智能提示扩展「laravel-ide-helper」 一.总结 一句话总结: laravel-ide-helper作用是:代码提示 larav ...
- 解决 PhpStorm 对 用单例模式实例化PHP类时,代码自动提示功能失效 的问题
大部分PHP框架中,为了防止一个类被重复实例化,往往采用“单例模式”实例化类.我们的项目框架是这样做的: 先写好一个基类 /framework/Base.class.php,内容如下: <?ph ...
随机推荐
- .net Core中如何读取Appsetting配置文件
现在APPSetting下面配置以下节点 { "Logging": { "IncludeScopes": false, "LogLevel" ...
- EntityFramework Core 迁移忽略主外键关系
前言 本文来源于一位公众号童鞋私信我的问题,在我若加思索后给出了其中一种方案,在此之前我也思考过这个问题,借此机会我稍微看了下,目前能够想到的也只是本文所述方案. 为何要忽略主外键关系 我们不仅疑惑为 ...
- 以api文档为中心--前后端分开发离新思维
api文档编写好像很简单,其实不是.一个良好的api文档,需要就有以下内容:接口详细描述,接口参数详细描述,接口返回结果详细描述,容易理解的范例.这些内容其实是不少的,编写过程中还非常单调乏味.再加上 ...
- 图片文件分布式存储方案设计模式(c#--sqlserver)
1.为了降低web服务器的压力,申请了2台文件服务器,用来存放图片文件.但是两台文件服务器如何让程序自己选择呢? 于是我用了一个算法,思路如下: 从状态表筛选出可用的图片服务器集合记作C,并获取集合的 ...
- CodeFoeces 1215 D Ticket Game(数学,思维)
CodeFoeces 1215 D Ticket Game 题目大意 M和B轮流玩游戏(每一轮M先手 现在给出一个长度为偶数的串,包含字符'?'和数字 现在两人依次在'?'上填数字\(0\)~\(9\ ...
- 【线型DP】【LCS】洛谷P4303 [AHOI2006]基因匹配
P4303 [AHOI2006]基因匹配 标签(空格分隔): 考试题 nt题 LCS优化 [题目] 卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而成(地球 ...
- 【Python】__name__ 是什么?
前言 在我们浏览一下 python 文件或者自己写 python 代码的时候,时常会在代码的最后加上这样的一行代码 if __name__ == '__main__': func_name() 那么这 ...
- Java实现上传文件到指定服务器指定目录(ChannelSftp实现文件上传下载)
package com.tianyang.task.utils; import java.io.File;import java.io.FileInputStream;import java.io.I ...
- python-----内存管理机制
一.深浅拷贝的区别 深浅拷贝一般是在列表嵌套列表的情况下去讨论 浅拷贝:只拷贝列表中对象的引用,嵌套列表中的数据是不会进行全部拷贝的 深拷贝:会把对象里面所有的数据都拷贝一份,不再只拷贝对象的引用,会 ...
- Linux01 /Linux初识
Linux01 /Linux初识 目录 Linux01 /Linux初识 1. 服务器 2. Linux系统介绍 3. linux简单介绍 4. VMware与Centos系统安装 5. 各个连接协议 ...