一、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
- Root composer.json requires barryvdh/laravel-ide-helper ^2.10 -> satisfiable by barryvdh/laravel-ide-helper[v2.10.0].
- 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