php代码提示助手,Laraval IDE 自动补全助手:Laravel IDE Helper Generator

Laraval IDE 自动补全助手:Laravel IDE Helper Generator

由 学院君 创建于4年前, 最后更新于 6个月前

版本号 #3

35351 views

13 likes

0 collects

edacdefc38caeabc63ca169e25962865.png

1、简介

该扩展包可以生成一个IDE可以理解的文件,以便提供精准的自动补全功能。这个生成的文件基于项目中存在的文件,所以永远是实时的。当然如果你不想手动生成这个文件,也可以使用预生成的文件并把它们放到项目根目录下(这些文件就没有那么实时了):

注:Laravel 4.x请参考这里。

2、安装

我们使用如下Composer命令安装扩展包相关依赖:

composer require barryvdh/laravel-ide-helper

安装完成后我们需要到config/app.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 name

app('App\SomeClass');

注意:你可能需要重启PHPStorm以确保.phpstorm.meta.php被索引。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值