Laraval IDE 自动补全助手:Laravel IDE Helper Generator
1、简介
该扩展包可以生成一个IDE可以理解的文件,以便提供精准的自动补全功能。这个生成的文件基于项目中存在的文件,所以永远是实时的。当然如果你不想手动生成这个文件,也可以使用预生成的文件并把它们放到项目根目录下(这些文件就没有那么实时了):
- Larval 5: https://gist.github.com/barryvdh/5227822
- Lumen: https://gist.github.com/barryvdh/be17164b0ad51f832f20
- PHPStorm Meta 文件: https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67
注:Laravel 4.x请参考 这里 。
2、安装
我们使用如下Composer命令安装扩展包相关依赖:
composer require barryvdh/laravel-ide-helper
安装完成后我们需要到app/config.php的providers选项中注册服务提供者:
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
3、自动生成Laravel门面对应的phpDoc
在使用这个扩展包之前,或许不少人已经碰到了使用PHPStorm不能自动补全门面(Facade)的问题,现在Laravel IDE Helper Generator 为我们带来了福音。我们使用如下命令生成包含门面补全信息的文件:
php artisan ide-helper:generate
注意:在此之前需要清除 bootstrap/compiled.php ,所以生成之前需要先运行 php artisan clear-compiled 然后运行 php artisan optimize 。
为了后续方便,你也可以在 composer.json 文件中作如下配置:
"scripts":{ "post-update-cmd": [ "php artisan clear-compiled", "php artisan ide-helper:generate", "php artisan optimize" ]},
还可以发布配置文件以修改默认实现:
php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config
生成器会尝试定位真正的类,如果找不到,可以在配置文件中定义。
有些类需要数据库连接,如果没有相应的数据库连接,某些门面可能无法包含进来。
你可以选择要包含的辅助函数文件,默认该选项并未开启,但是你可以通过 --helpers 选项覆盖默认配置。默认会引入 Illuminate/Support/helpers.php ,当然你还可以在配置文件中添加自定义的辅助函数文件。
4、自动生成模型对应的phpDoc
在使用本特性之前,需要先安装 doctrine/dbal: ~2.3 :
composer require doctrine/dbal
如果你不想自己编写模型属性,可以使用 php artisan ide-helper:models 命令来基于数据表字段、关联关系以及getters/setters生成对应的phpDoc。你可以通过 —write(-W) 选项来编写模型文件的注释,默认情况下,你需要覆盖或新建一个单独的文件 _ide_helper_models.php ,你也可以通过 —nowrite(-N) 不做更改。需要注意的是在进行操作之前需要备份模型文件,因为我们要保留之前已存在的,只是追加新属性和方法,而不是覆盖和重写。phpdoc已存在会被替换,否则新增,通过 —reset(-R) 选项,已存在的phpdoc会被忽略,新增的字段/关系才会被保存。
php artisan ide-helper:models Post
该命令会根目录下生成文件 _ide_helper_models.php 。
/** * An Eloquent Model: 'Post' * * @property integer $id * @property integer $author_id * @property string $title * @property string $text * @property \Carbon\Carbon $created_at * @property \Carbon\Carbon $updated_at * @property-read \User $author * @property-read \Illuminate\Database\Eloquent\Collection|\Comment[] $comments */
默认情况下,app/models中的模型会被遍历,可以使用如下方式告诉哪些模型被使用:
php artisan ide-helper:models Post User
还可以通过 --dir 选项浏览一个其他目录(基于根路径):
php artisan ide-helper:models --dir="path/to/models" --dir="app/src/Model"
也可以发布配置文件( php artisan vendor:publish )并设置默认目录。
可以使用 —ignore(-I) 选项来忽略模型:
php artisan ide-helper:models --ignore="Post,User"
可以通过命名空间包裹模型名称: php artisan ide-helper:models "API\User"
5、PHPStorm中容器实例对应的Meta
可以生成一个PHPStorm meta文件来添加工厂设计模式支持,对Laravel而言,这意味着我们可以让PHPStorm理解从IoC容器中取出的对象类型。例如, events 会返回 Illuminate\Events\Dispatcher 对象,因此通过meta文件你可以调用 app('events') 然后它会自动补全对应的调度方法。
php artisan ide-helper:meta
会在根目录下生成 .phpstorm.meta.php 文件。
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 nameapp('App\SomeClass');
预生成示例: https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67
注意:你可能需要重启PHPStorm以确保 .phpstorm.meta.php 被索引。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

长URL(通常用关键字和跟踪参数都混乱)可以阻止访问者。 URL缩短脚本提供了解决方案,创建了简洁的链接,非常适合社交媒体和其他平台。 这些脚本对于单个网站很有价值

在Facebook在2012年通过Facebook备受瞩目的收购之后,Instagram采用了两套API供第三方使用。这些是Instagram Graph API和Instagram Basic Display API。作为开发人员建立一个需要信息的应用程序

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

2025年的PHP景观调查调查了当前的PHP发展趋势。 它探讨了框架用法,部署方法和挑战,旨在为开发人员和企业提供见解。 该调查预计现代PHP Versio的增长
