Laravel 超好用代码提示工具 Laravel IDE Helper

文章目录

  • 简介
  • 前期准备
  • 配置
    • 生成Facades注释
    • 自动生成数据模型注释
    • 编写链式代码自动提示(数据迁移代码)
    • 生成 .phpStorm.meta.php

简介

  • Laravel IDE Helper 是一个极其好用的代码提示及补全工具,可以给编写代码带来极大的便利。其中包括如下
  • 生成Facades注释 php artisan ide-helper:generate
  • 生成数据模型注释 php artisan ide-helper:models
  • 生成 PhpStorm Meta file php artisan ide-helper:meta
  • 链式操作自动提示,比如编写数据迁移代码

前期准备

  • 安装 larave-ide-helper
composer require barryvdh/laravel-ide-helper
# 如果只想在开发环境安装请加上`--dev`
composer require barryvdh/laravel-ide-helper --dev
  • 安装 doctrine/dbal模型注释需要使用
composer require "doctrine/dbal: ~2.3"
# 如果只想在开发环境安装请加上`--dev`
composer require "doctrine/dbal: ~2.3" --dev
  • config/app.phpproviders数组中加入
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class
  • 如果你的 Laravel 版本小于 5.5 的话,请注册服务提供者,否则请忽略
  • 如果你只在开发环境中安装larave-ide-helper,那么可以在app/Providers/AppServiceProvider.phpregister方法中写入下面代码:
public function register()
{
    if ($this->app->environment() !== 'production') {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
  • 导出配置文件(如果默认配置就满足需求了,也可以忽略这一步,建议执行这步)
    • 执行成功会在/config/目录下生成一个ide-helper.php的文件,在文件中可以进行一些配置的修改,比如下面编写(编写链式代码自动提示(数据迁移代码))配置,直接改这个即可,不需要去vendor/barryvdh/laravel-ide-helper/config/ide-helper.php进行修改。
php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config

配置

生成Facades注释

  • 在命令行下运行
php artisan ide-helper:generate
  • 如果存在文件 bootstrap/compiled.php 需要先删除, 可以在生成文当前运行 php artisan clear-compiled
  • 会在项目根目录下生成_ide_helper.php文件。

自动生成数据模型注释

  • 命令行执行,运行的时候保证MySQL启动
php artisan ide-helper:models
  • 出现提示,填写yes,然后回车,建议输入yes会在模型文件中写入注释,否则会生成_ide_helper_models.php文件。这样在跟踪文件的时候不会跳转到_ide_helper_models.php文件,不过这么做最好对模型文件做个备份,至少在生成注释之前用 git 控制一下版本,以防万一。
    tips

  • 运行成功之后会在模型中生成对应的注释。并且在使用的时候可以快速跳转。如图
    Laravel 超好用代码提示工具 Laravel IDE Helper_第1张图片
    Laravel 超好用代码提示工具 Laravel IDE Helper_第2张图片

编写链式代码自动提示(数据迁移代码)

  • 平常编写数据迁移代码时,给字段设置属性时只有第一个方法会提示,后面的都不能提示了。如图
    Laravel 超好用代码提示工具 Laravel IDE Helper_第3张图片
    没有提示
    结果

  • 就算调用过了 php artisan ide-helper:generate,在调用像 ->unique() 这样的链式操作的时候也无法实现代码提示,我们需要配置根目录下vendor/barryvdh/laravel-ide-helper/config/ide-helper.php文件,如果上述操作导出配置文件这步骤的话,配置文件就是config/ide-helper.php修改即可。

  • 打开根目录vendor/barryvdh/laravel-ide-helper/config/ide-helper.php或者config/ide-helper.php找到include_fluent => false修改为 'include_fluent => true,然后重新执行php artisan ide-helper:generate即可,如图

  • 运行导出配置命令,修改如图配置文件
    Laravel 超好用代码提示工具 Laravel IDE Helper_第4张图片

  • 没有运行导出配置命令,配置文件在vender里面,编辑会出现只读,选择第一个希望编辑点击ok。
    Laravel 超好用代码提示工具 Laravel IDE Helper_第5张图片

  • 修改后
    Laravel 超好用代码提示工具 Laravel IDE Helper_第6张图片

  • 执行php artisan ide-helper:generate、测试、成功
    Laravel 超好用代码提示工具 Laravel IDE Helper_第7张图片

生成 .phpStorm.meta.php

  • 可以生成一个 PhpStorm meta 文件去支持工厂模式。对于 Laravel, 这意味着我们可以让 PhpStorm 理解我们从 IoC 容器中解决了什么类型的对象。例如:事件将返回一个「Illuminate\Events\Dispatcher」对象,利用 meta 文件您可以调用 app (‘events’) 并且它将自动完成 Dispatcher 的方法。配置完成重启PhpStorm
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');
  • 自动运行 generate,想在依赖包更新时自动更新注释,可以在 composer.json 文件中做如下配置:如果只在 dev 环境下部署 ide helper 还是不要这么做了,防止在生产环境中报错导致不必要的麻烦。
"scripts":{
    "post-update-cmd": [
        "Illuminate\\Foundation\\ComposerScripts::postUpdate",
        "php artisan ide-helper:generate",
        "php artisan ide-helper:meta"
    ]
}

你可能感兴趣的:(laravel,软件配置,PHP,php,phpstorm,laravel)