laravel2580/idehelpers

Laravel IDE Helper,为所有 Facade 类生成正确的 PHPDocs,以改进自动补全。

v2.2.1 2016-07-04 11:52 UTC

README

Latest Version on Packagist Software License Build Status Total Downloads

对于 Laravel 4.x,请查看 版本 1.11

直接从源代码生成的完整 phpDocs

查看 此 Laracasts 视频 以获得快速介绍/解释!

此包生成一个 IDE 可以理解的文件,因此它可以提供准确的自动补全。生成基于项目中的文件,因此它们总是最新的。如果您不希望生成它,可以将预先生成的文件添加到 Laravel 项目的根目录中(但这不如自行生成的文件更新)。

注意:您需要为 Sublime Text 安装 CodeIntel:https://github.com/SublimeCodeIntel/SublimeCodeIntel

安装

使用以下命令通过 composer 安装此包

composer require barryvdh/laravel-ide-helper

更新 composer 后,将服务提供者添加到 config/app.php 中的 providers 数组

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,

Laravel Facades 的自动 phpDoc 生成

您现在可以自己重新生成文档(用于未来的更新)

php artisan ide-helper:generate

注意:必须在生成之前清除 bootstrap/compiled.php,因此请在生成之前运行 php artisan clear-compiled(并在生成后运行 php artisan optimize)。

您可以将 composer.json 配置为在每次提交后执行此操作

"scripts":{
    "post-update-cmd": [
        "Illuminate\\Foundation\\ComposerScripts::postUpdate",
        "php artisan ide-helper:generate",
        "php artisan ide-helper:meta",
        "php artisan optimize"
    ]
},

您还可以发布配置文件以更改实现(例如,将接口更改为特定类)或为 --helpers--sublime 设置默认值。

php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config

生成器尝试识别实际类,但如果找不到,您可以在配置文件中定义它。

某些类需要一个正常工作的数据库连接。如果您没有默认的正常工作的连接,某些 Facade 将不会包括在内。您可以使用带有 -M 选项的内存中 SQLite 驱动程序。

您可以选择包含辅助文件。默认情况下,此选项未启用,但您可以使用 --helpers (-H) 选项覆盖它。已经设置了 Illuminate/Support/helpers.php,但您可以在配置文件中添加/删除自己的文件。

模型的自动 phpDocs

您需要在您的 composer.json 中要求 doctrine/dbal: ~2.3 以获取数据库列。

composer require doctrine/dbal

如果您不想自己编写属性,可以使用命令 php artisan ide-helper:models 生成 phpDocs,基于表列、关系和获取/设置方法。您可以使用 --write (-W) 选项直接将注释写入模型文件。默认情况下,系统会询问您是要覆盖还是写入一个单独的文件(_ide_helper_models.php)。您可以使用 --nowrite (-N) 强制不写入。请在写入信息之前确保备份您的模型。它应保留现有注释并仅附加新的属性/方法。现有的 phpdoc 被替换或添加(如果未找到)。使用 --reset (-R) 选项,忽略现有的 phpdocs,并将新找到的列/关系保存为 phpdocs。

php artisan ide-helper:models Post
/**
 * 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 中的模型。可选参数告诉使用哪些模型(也可以在 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",或者转义斜杠(Api\\User)。

PhpStorm 容器实例的元数据

可以生成一个 PhpStorm 元数据文件,以 支持工厂设计模式。对于 Laravel,这意味着 PhpStorm 可以理解从 IoC 容器中解析的对象类型。例如,events 将返回一个 Illuminate\Events\Dispatcher 对象,因此使用元数据文件,您可以调用 app('events') 并自动完成 Dispatcher 方法。

php artisan ide-helper:meta
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');

预生成示例: https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67

注意:您可能需要重新启动 PhpStorm 并确保 .phpstorm.meta.php 已被索引。注意:当您收到关于找不到类的致命异常时,请检查您的配置(例如,在没有配置 S3 时移除 S3 作为云驱动程序。当您不使用它时移除 Redis ServiceProvider)。

许可协议

Laravel IDE Helper 生成器是开源软件,遵循 MIT 许可协议