laravel代码提示工具 Laravel IDE Helper(转)
原文:https://learnku.com/articles/10172/laravel-super-good-code-prompt-tool-laravel-ide-helper
Laravel IDE Helper:https://github.com/barryvdh/laravel-ide-helper
1、简介
copyphp artisan ide-helper:generate
#为 Facades 生成注释
php artisan ide-helper:models
#为数据模型生成注释
php artisan ide-helper:meta
#生成 PhpStorm Meta file
Laravel IDE Helper 是一个极其好用的代码提示及补全工具,可以给编写代码带来极大的便利。
2、安装
2.1、安装 larave-ide-helper
copy# 如果只想在开发环境安装请加上 --dev
composer require barryvdh/laravel-ide-helper
2.2、安装 doctrine/dbal
「请装上它,在为模型注释字段的时候必须用到它」
copy# 如果只想在开发环境安装请加上 --dev
composer require "doctrine/dbal: ~2.3"
在 「config/app.php」的 「providers」数组中加入
copyBarryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class
#如果你的 Laravel 版本小于 5.5 「如果没记错」的话,请注册服务提供者,否则请忽略
如果你只在开发环境中安装「larave-ide-helper」,那么可以在「app/Providers/AppServiceProvider.php」的「register」方法中写入下面代码:
copypublic function register()
{
if ($this->app->environment() !== 'production') {
$this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
}
// ...
}
导出配置文件(如果默认配置就满足需求了,也可以忽略这一步)
copyphp artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config
3、使用
3.1、自动为 Laravel 的 Facades 生成注释
在命令行下运行
copyphp artisan ide-helper:generate
注:如果存在文件 「bootstrap/compiled.php」 需要先删除, 可以在生成文当前运行 php artisan clear-compiled。
3.2、自动为模型生成注释
为所有模型生成注释 php artisan ide-helper:models, 这时会出现询问:
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 则会直接在模型文件中写入注释,否则会生成「_ide_helper_models.php」文件。建议选择 yes,这样在跟踪文件的时候不会跳转到「_ide_helper_models.php」文件,不过这么做最好对模型文件做个备份,至少在生成注释之前用 git 控制一下版本,以防万一。
提示: 为模型生成字段信息必须在数据库中存在相应的数据表,不要生成 migration 还没运行 migrate 的时候就生成注释,这样是得不到字段信息的。
3.3、自动为链式操作注释
这是什么意思呢?举个例子,在 migration 文件中经常可以看见这样的代码:
copy$table->string('email')->unique();
这时候就算调用过了 php artisan ide-helper:generate,在调用像 ->unique() 这样的链式操作的时候也无法实现代码提示,这时候需要将配置文件「如果导出的话」'include_fluent' => false 修改为 'include_fluent' => true,重新运行 php artisan ide-helper:generate。试试效果吧!
3.4、生成 .phpStorm.meta.php
可以生成一个 PhpStorm meta 文件去支持工厂模式。对于 Laravel, 这意味着我们可以让 PhpStorm 理解我们从 IoC 容器中解决了什么类型的对象。例如:事件将返回一个「Illuminate\Events\Dispatcher」对象,利用 meta 文件您可以调用 app (‘events’) 并且它将自动完成 Dispatcher 的方法。
copyapp('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');
提示:您可能需要重启 Phpstorm 使 .phpStorm.meta.php 文件生效。
3.5、自动运行 generate
想在依赖包更新时自动更新注释,可以在 composer.json 文件中做如下配置:
copy"scripts":{
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan ide-helper:generate",
"php artisan ide-helper:meta"
]
}
提示:如果只在 dev 环境下部署 ide helper 还是不要这么做了,防止在生产环境中报错导致不必要的麻烦。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人