Laravel 门面自动补全工具 laravel-ide-helper

2019-08-27 05:43:13

参考地址 Laravel 门面自动补全工具 laravel-ide-helper

简介

当我们在 PhpStorm 编辑器中,开发 Laravel 框架的项目时,很多类方法都不能自动补全和定位,比如 Facade 门面的方法,DB::table()、Route::get() 等。


laravel-ide-helper 工具可以解决这个问题。


安装和配置

首先,通过 composer 安装 laravel-ide-helper


composer require --dev barryvdh/laravel-ide-helper:2.4.3

然后,注册服务提供者。有两种注册方式:


在 config/app.php 的 providers 数组中注册服务提供者


Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,

在 app/Providers/AppServiceProvider.php 的 register() 方法中注册。


public function register()

{

    if ($this->app->environment() !== 'production') {

        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);

    }

    // ...

}

推荐使用第二种方式,因为它只会在非生产环境中加载 Laravel IDE Helper。


自动生成 Laravel 门面对应的 phpDoc

注意:在生成 phpDoc 之前,我们需要先清除 bootstrap/compiled.php 文件。


清除命令是:


php artisan clear-compiled

然后,执行下面的命令生成 phpDoc 文件。


php artisan ide-helper:generate

生成的 phpDoc 就是项目根目录下的 _ide_helper.php 文件,里面包含了 Laravel 门面的相关信息。


为了方便,你可以在 composer.json 文件中作如下配置:


"scripts":{

    ...

    "post-update-cmd": [

        "Illuminate\\Foundation\\ComposerScripts::postUpdate",

        "php artisan ide-helper:generate",

        "php artisan ide-helper:meta"

    ]

},

你还可以发布配置文件,以便修改默认的实现。


php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config

生成器会尝试去识别真正的类,如果找不到,你可以在配置文件中定义。


有些类需要数据库连接,如果没有相应的数据库连接,某些门面可能无法包含进来。


你可以选择要包含的辅助函数文件,默认该选项并未开启,但是你可以通过 --helpers (-H) 选项进行覆盖。


默认已经引入了 Illuminate/Support/helpers.php ,当然你还可以在配置文件中添加自己的辅助函数文件。


关于 laravel-ide-helper 的更多功能,请参考 https://github.com/barryvdh/laravel-ide-helper



  • 2018-08-16 16:10:43

    Laravel 跨域解决方案

    我们在用 laravel 进行开发的时候,特别是前后端完全分离的时候,由于前端项目运行在自己机器的指定端口(也可能是其他人的机器) , 例如 localhost:8000 , 而 laravel 程序又运行在另一个端口,这样就跨域了,而由于浏览器的同源策略,跨域请求是非法的。其实这个问题很好解决,只需要添加一个中间件就可以了。

  • 2018-08-18 20:30:12

    laravel5.5 路由分割成不同文件

    routes.php/api.php文件用来放置laravel路由,当项目越来越大,相应的路由文件也会越来越多。如果能够将不同功能的路由分割到不同的文件,那么对以后的维护将很有帮助。

  • 2018-08-20 15:26:19

    关于OnTouch 和OnClick同时调用冲突的解决方案

    大家在搞轮播图的时候会碰到这样的情况,点击进入webview界面,长按轮播图停止轮播,手松开图又开始轮播,这里就涉及到了OnTouch 和OnClick同时调用。两者是有冲突的。这里简单介绍,给大家提供思路。

  • 2018-08-20 15:29:11

    揭开RecyclerView的神秘面纱(二):处理RecyclerView的点击事件

    主要讲述了RecyclerView的基本使用方法,不同的布局管理器而造成的多样化展示方式,展示了数据之后,一般都会与用户进行交互,因此我们需要处理用户的点击事件。在ListView和GridView提供了onItemClickListener这个监听器,然而我们查找RecyclerView的API却没有类似的监听器,因此我们需要自己手动处理它的点击事件。 以下提供两种方法来实现处理RecyclerView点击事件的功能,以下代码均基于上一篇文章的代码做出修改。

  • 2018-08-20 22:58:46

    onInterceptTouchEvent和onTouchEvent调用关系详解 ...

    老实说,这两个小东东实在是太麻烦了,很不好懂,我自己那api文档都头晕,在网上找到很多资料,才知道是怎么回事,这里总结一下,记住这个原则就会很清楚了:

  • 2018-08-23 15:32:18

    map对象拷贝问题

    最后面是使用序列化的方式,发现,更改引用类型的数据的时候,mapNew对象并没有发生变化,所以产生了深拷贝。 上述的工具类,可以实现对象的深拷贝,不仅限于HashMap,前提是实现了Serlizeable接口。

  • 2018-08-24 11:33:17

    总结和分析几种判断 RecyclerView 到达底部的方法

    SwipeRefreshLayout 写一个 RecyclerView 的上下拉 ,里面有一个判断 RecyclerView 是否到达底部的方法 isBottom。我的同事用了这个上下拉之后发现有些小 bug,没考虑周全,譬如各个子项高度不统一的时候,然后我找到原因是因为这个判断上下拉的问题。所以,我就去网上查到几种判断 RecyclerView 到达底部的方法,发现各有千秋。以下的分析都以上一篇文章的 SwipeRecyclerView 为例

  • 2018-08-26 00:18:04

    RecyclerView 图片错位空白的问题

    1.图片错位的原因是因为图片异步记载返回去展示出的问题。图片空白,是item刷新,请求图片时间上的问题。 2。viewHolder.setIsRecyclable(false); 就没有tag,不设置 就有tag,但是有没有没啥区别 设置tag,