一、Laravel项目开发效率神器

1、PhpStorm安装Laravel代码提示插件

安装步骤:按照File > Settings > Plugins > Marketplace执行步骤进入 PhpStorm 插件市场,然后搜索 laravel 关键字,在搜索结果插件列表中,选择 Laravel 代码提示工具插件 INSTALL(安装),待安装执行结束后,点击 RESTART IDE 重启 PhpStorm 集成开发工具。
插件配置:启动 PhpStorm 集成开发工具后,在 Welcome to PhpStorm 界面,单击 OPEN 打开Laravel项目文件目录,进入项目代码编辑界面,等待 PhpStorm 集成开发工具自动执行Laravel 相关配置,然后按照File > Settings > Languages & Frameworks > PHP > Laravel执行步骤勾选以下两个配置选项,然后点击 APPLY 按钮即可完成 Laravel 代码提示插件当前项目配置工作。特别注意,每次导入新项目,都要检测以下两个配置项是否勾选,否则在项目开发时,无法正常使用该插件进行代码提示工作。

  • Enable plugin for this project
  • Use AutoPopup for completion (use at own risk eg together with Symfony2)

    2、PhpStorm编辑代码自动引入命名空间

    执行步骤:按照File > Settings > Editor > General > Auto Import > PHP 执行步骤配置自动在文件头部Use引入命名空间功能,需同事勾选以下两个配置项。

  • Enable auto-import in file scope // PhpStorm默认没有勾选此配置项

  • Enable auto-import in namespace scope // PhpStorm默认勾选此配置项

    3、Laravel项目安装增强代码提示功能插件

    1️⃣ 准备工作:Windows系统需安装Composer依赖管理工具,否则无法在项目根目录下执行Composer命令安装增强代码提示功能软件包 barryvdh/laravel-ide-helper
    2️⃣ Packageist 地址:https://packagist.org/packages/barryvdh/laravel-ide-helper
    3️⃣ 执行步骤:打开PhpStorm集成开发工具,打开 Laravel 开发项目,然后使用快捷键 Alt + F12 快速调出 Terminal 终端窗口,在 Terminal 终端中输入如下命令,安装增强代码提示功能软件包。 ```powershell

    推荐composer安装命令含有参数—dev 因为这个包不需要同步到线上

    composer require barryvdh/laravel-ide-helper —dev

如果使用上述命令出现如下错误提示,则需要安装指定版本

Your requirements could not be resolved to an installable set of packages.

Problem 1

  1. - Root composer.json requires barryvdh/laravel-ide-helper ^2.10 -> satisfiable by barryvdh/laravel-ide-helper[v2.10.0].
  2. - barryvdh/laravel-ide-helper v2.10.0 requires illuminate/console ^8 -> found illuminate/console[v8.0.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

错误已经提示当前安装的是 barryvdh/laravel-ide-helper[v2.10.0]

但是该版本依赖的 illuminate/console^8 没安装,因为 illuminate/console^8 是 laravel8 的扩展包

所以这个支持是要看版本的,而我目前安装的是laravel6框架

默认安装的laravel-ide-helper v2.10.0版本不支持,我们安装低版本的laravel-ide-helper就行

```powershell
# 如果使用上述安装命令出现错误提示,无法正常安装,则使用下述指令安装
# 推荐composer安装命令含有参数--dev 因为这个包不需要同步到线上
composer require barryvdh/laravel-ide-helper=2.* --dev

# 执行指令结果
./composer.json has been updated
Running composer update barryvdh/laravel-ide-helper
Loading composer repositories with package information
Updating dependencies
Lock file operations: 17 installs, 0 updates, 0 removals
  - Locking barryvdh/laravel-ide-helper (v2.8.2)
  - Locking barryvdh/reflection-docblock (v2.0.6)
  - Locking composer/ca-bundle (1.2.9)
  - Locking composer/composer (2.0.13)
  - Locking composer/metadata-minifier (1.0.0)
  - Locking composer/semver (3.2.4)
  - Locking composer/spdx-licenses (1.5.5)
  - Locking composer/xdebug-handler (1.4.6)
  - Locking doctrine/cache (1.11.0)
  - Locking doctrine/dbal (2.13.1)
  - Locking doctrine/deprecations (v0.5.3)
  - Locking doctrine/event-manager (1.1.1)
  - Locking justinrainbow/json-schema (5.2.10)
  - Locking react/promise (v2.8.0)
  - Locking seld/jsonlint (1.8.3)
  - Locking seld/phar-utils (1.1.1)
  - Locking symfony/filesystem (v5.2.7)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 17 installs, 0 updates, 0 removals
  - Downloading doctrine/event-manager (1.1.1)
  - Downloading doctrine/deprecations (v0.5.3)
  - Downloading doctrine/cache (1.11.0)
  - Downloading doctrine/dbal (2.13.1)
  - Downloading symfony/filesystem (v5.2.7)
  - Downloading seld/phar-utils (1.1.1)
  - Downloading seld/jsonlint (1.8.3)
  - Downloading react/promise (v2.8.0)
  - Downloading justinrainbow/json-schema (5.2.10)
  - Downloading composer/xdebug-handler (1.4.6)
  - Downloading composer/spdx-licenses (1.5.5)
  - Downloading composer/semver (3.2.4)
  - Downloading composer/metadata-minifier (1.0.0)
  - Downloading composer/ca-bundle (1.2.9)
  - Downloading composer/composer (2.0.13)
  - Downloading barryvdh/reflection-docblock (v2.0.6)
  - Downloading barryvdh/laravel-ide-helper (v2.8.2)
  - Installing doctrine/event-manager (1.1.1): Extracting archive
  - Installing doctrine/deprecations (v0.5.3): Extracting archive
  - Installing doctrine/cache (1.11.0): Extracting archive
  - Installing doctrine/dbal (2.13.1): Extracting archive
  - Installing symfony/filesystem (v5.2.7): Extracting archive
  - Installing seld/phar-utils (1.1.1): Extracting archive
  - Installing seld/jsonlint (1.8.3): Extracting archive
  - Installing react/promise (v2.8.0): Extracting archive
  - Installing justinrainbow/json-schema (5.2.10): Extracting archive
  - Installing composer/xdebug-handler (1.4.6): Extracting archive
  - Installing composer/spdx-licenses (1.5.5): Extracting archive
  - Installing composer/semver (3.2.4): Extracting archive
  - Installing composer/metadata-minifier (1.0.0): Extracting archive
  - Installing composer/ca-bundle (1.2.9): Extracting archive
  - Installing composer/composer (2.0.13): Extracting archive
  - Installing barryvdh/reflection-docblock (v2.0.6): Extracting archive
  - Installing barryvdh/laravel-ide-helper (v2.8.2): Extracting archive
3 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: barryvdh/laravel-ide-helper
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
79 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
4️⃣ 执行步骤:在Laravel项目 `config/app.php` 文件的 `providers` 数组中加入如下代码
/*
 * Package Service Providers...
 */
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
5️⃣ 执行步骤:因为只在开发环境中安装增强代码提示功能软件包 `larave-ide-helper` ,那么可以在Laravel项目 `app/Providers/AppServiceProvider.php` 文件的 `register` 方法中添加如下代码:
    public function register()
    {
                // 添加如下代码
        if ($this->app->environment() !== 'production') {
            $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
        }
        //
    }

自选执行:导出配置文件(如果默认配置就满足需求了,也可以忽略这一步),在PhpStorm集成开发工具Teminal终端,进入项目根目录执行如下命令。

# 根据自己项目需要确认是否执行该命令,一般不需要执行,本项目没有执行该命令
php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config
6️⃣ 执行步骤:为Laravel6.x框架 `Facades` 生成 `phpDocs` 注释,在PhpStorm集成开发工具Teminal终端,进入项目根目录执行如下命令(以上操作完成,项目开始开发即可执行该命令)。
php artisan ide-helper:generate

Laravel6.x项目根目录下出现 _ide_helper.php 这个文件,即代表命令执行成功。
上述命令执行成功,那么就可以使用 _ide_helper.php 生成模型注释,相关代码如下所示

  • 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

特别说明:如果存在文件 bootstrap/compiled.php 需要先删除, 可以在生成文件当前运行如下代码。

php artisan clear-compiled
7️⃣ 执行步骤:为Laravel6.x框架 `Models` 生成 `phpDocs` 注释,可以在PhpStorm集成开发工具Teminal终端,进入项目根目录执行如下命令。(当Laravel6.x项目开始开发模型相关代码时)
php artisan ide-helper:models

执行上述命令为当前项目所有模型生成注释,这时会出现如下代码询问,意为是否在模型文件中写入注释。建议选择 yes,这样在跟踪文件的时候不会跳转到 _ide_helper_models.php 文件,不过这么做最好对模型文件做个备份,至少在生成注释之前用 git 控制一下版本,以防万一。

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

提示: 为模型生成字段信息必须在数据库中存在相应的数据表,不要生成 migration 还没运行 migrate 的时候就生成注释,这样是得不到字段信息的。
8️⃣ 执行步骤:为 PhpStorm 生成Laravel6.x项目类路径提示文件,在PhpStorm集成开发工具Teminal终端,进入项目根目录执行如下命令。

php artisan ide-helper:meta