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-10-20 20:44:03

    RecycleView4种定位滚动方式演示

    将RecyclerView滑动到指定位置,或者检索RecyclerView的某一项(各个项的高度不确定),然后定位滚动这到一项,将它显示。 下面就讲解4种RecyclerView定位滚动

  • 2018-10-21 22:29:24

    android ScollView 嵌套 WebView 底部空白,高度无法自适应解决

    最近要做一个页面,需要 ScrollView 嵌套 WebView,怎么嵌套,怎么解决焦点和 touch 事件冲突,网上一大堆,这里就不赘述了,但是发现 WebView 从一个高度很高的网页加载一个高度很低的网页的时候,高度无法自适应了,造成底部会有一大片的空白,解决方案找到了挺多,描述一下:

  • 2018-10-24 15:24:54

    getcachedir和getexternalcachedir的区别

    应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。 大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。 这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。 如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?

  • 2018-10-25 11:05:16

    SimpleDateFormat转换时间,12,24时间格式

    在使用SimpleDateFormat时格式化时间的 yyyy.MM.dd 为年月日而如果希望格式化时间为12小时制的,则使用hh:mm:ss 如果希望格式化时间为24小时制的,则使用HH:mm:ss