为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 ...
随机推荐
- 硬刚 lodash 源码之路,_.chunk
前置 chunk 函数内部借助其他函数实现,所以从其他函数开始,chunk 在最后. 你可能需要一些 JavaScript 基础知识才能看懂一些没有注释的细节. isObject 判断是否为 Obje ...
- JavaScript图形实例:再谈IFS生成图形
在“JavaScript图形实例:迭代函数系统生成图形”一文中,我们介绍了采用迭代函数系统(Iterated Function System,IFS)创建分形图案的一些实例.在该文中,仿射变换函数W的 ...
- 平常我们是如何区分css中class和id之间有什么区别的?
我们平常在用DIV+CSS制作html网页页面时,常会用到class 和id来选择调用CSS样式属性.对学习CSS的新手来说class和id可能比较模糊,同时不知道什么时候该用class,什么时候又用 ...
- plus.runtime.quit()是个好函数
对于H5+APP开发,应用的生命周期监听函数里是对应用行为的监控,但是并不对应用执行退出或重启操作.相关操作还是要使用mui
- 微服务框架Demo.MicroServer运行手册
一.背景说明: 之前分享过一个微服务开发框架, "享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionle ...
- day36 作业
客户端 import struct import json from socket import * client=socket(AF_INET,SOCK_STREAM) # client.conne ...
- day15 作业
day15 作业 目录 day15 作业 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第一题 ===================题目一=================== input ...
- 1-GPIO
GPIO的配置: GPIO库函数编程: void LED_init(void)//LED初始化 { GPIO_InitTypeDef GPIO_InitStructure;//定义一个结构体变量 RC ...
- java 数据结构(一):java常用类 一 String类
java.lang.String类的使用1.概述String:字符串,使用一对""引起来表示.1.String声明为final的,不可被继承2.String实现了Serializa ...
- 07 drf源码剖析之节流
07 drf源码剖析之节流 目录 07 drf源码剖析之节流 1. 节流简述 2. 节流使用 3. 源码剖析 总结: 1. 节流简述 节流类似于权限,它确定是否应授权请求.节流指示临时状态,并用于控制 ...