非人类 / laravel-ide-helper
Laravel IDE Helper,为所有 Facade 类生成正确的 PHPDocs,以改善自动完成。
Requires
- php: >=5.4.0
- barryvdh/reflection-docblock: ^2.0.4
- illuminate/console: ^5.0,<5.7
- illuminate/filesystem: ^5.0,<5.7
- illuminate/support: ^5.0,<5.7
- symfony/class-loader: ^2.3|^3.0
Requires (Dev)
- doctrine/dbal: ~2.3
- illuminate/config: ^5.0,<5.7
- illuminate/view: ^5.0,<5.7
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
- squizlabs/php_codesniffer: ~2.3
Suggests
- doctrine/dbal: Load information from the database about models for phpdocs (~2.3)
- v2.4.3
- v2.4.2
- v2.4.1
- v2.4.0
- dev-master / 2.3.x-dev
- v2.3.2
- v2.3.1
- v2.3.0
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- 1.11.x-dev
- v1.11.6
- v1.11.5
- v1.11.4
- v1.11.3
- v1.11.2
- v1.11.1
- v1.11.0
- v1.10.0
- v1.9.3
- v1.9.2
- v1.9.1
- v1.9.0
- v1.8.1
- v1.8.0
- v1.7.2
- v1.7.1
- v1.7.0
- v1.6.1
- v1.6.0
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.0
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v1.0.0-beta2
- v1.0.0-beta1
- dev-revert-624-Fix/623
- dev-revert-303-master
This package is auto-updated.
Last update: 2022-06-04 11:35:27 UTC
README
对于 Laravel 4.x,请查看 版本 1.11
直接从源代码生成 phpDocs
查看 此 Laracasts 视频 获取快速介绍/解释!
php artisan ide-helper:generate- Laravel Facades 的 phpDoc 生成php artisan ide-helper:models- 模型的 phpDocsphp artisan ide-helper:meta- PhpStorm Meta 文件
此包生成 IDE 可识别的文件,因此它可以提供准确的自动完成。生成基于项目中的文件,因此它们始终是最新的。如果您不想生成它,可以将预生成的文件添加到 Laravel 项目的根目录中(但这不如自行生成的文件更新)。
- L5 的生成版本:https://gist.github.com/barryvdh/5227822
- Lumen 的生成版本:https://gist.github.com/barryvdh/be17164b0ad51f832f20
- 生成的 Phpstorm Meta 文件:https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67
注意:您需要 CodeComplice for Sublime Text: https://github.com/spectacles/CodeComplice
安装
使用以下命令通过 composer 安装此包
composer require barryvdh/laravel-ide-helper
更新 composer 后,将服务提供者添加到 config/app.php 文件中的 providers 数组
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
要仅在开发系统上安装此包,请将 --dev 标志添加到您的 composer 命令
composer require --dev barryvdh/laravel-ide-helper
在 Laravel 中,您可以在 app/Providers/AppServiceProvider.php 文件中,在 register() 方法内添加以下代码,而不是在 config/app.php 文件中添加服务提供者
public function register() { if ($this->app->environment() !== 'production') { $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class); } // ... }
这将允许您的应用程序在非生产环境中加载 Laravel IDE Helper。
Laravel Facades 的自动 phpDoc 生成
您现在可以自己重新生成文档(用于未来的更新)
php artisan ide-helper:generate
注意:必须首先清除 bootstrap/compiled.php,因此在生成之前请运行 php artisan clear-compiled
您可以将 composer.json 配置为在每次提交后执行此操作
"scripts":{ "post-update-cmd": [ "Illuminate\\Foundation\\ComposerScripts::postUpdate", "php artisan ide-helper:generate", "php artisan ide-helper:meta" ] },
您还可以发布配置文件以更改实现(例如,将接口设置为特定类)或为 --helpers 或 --sublime 设置默认值。
php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config
生成器尝试识别真实类,但如果找不到,您可以在配置文件中定义它。
某些类需要正常工作的数据库连接。如果您没有默认的正常工作的连接,某些 Facade 不会被包含。您可以通过添加 -M 选项使用内存中的 SQLite 驱动程序。
您可以选择包含辅助文件。默认情况下,此选项未启用,但您可以使用 --helpers (-H) 选项覆盖它。已设置 Illuminate/Support/helpers.php,但您可以在配置文件中添加/删除自己的文件。
模型的自动phpDocs
您需要在您的composer.json中require
doctrine/dbal: ~2.3来获取数据库列。
composer require doctrine/dbal
如果您不想自己编写属性,可以使用命令 php artisan ide-helper:models 生成phpDocs,基于表列、关系和getter/setter。您可以使用 --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)
为了正确识别Model方法(例如paginate、findOrFail),您应该扩展\Eloquent或在您的模型类中添加
/** @mixin \Eloquent */
。
Laravel Fluent方法的自动phpDocs生成
如果您需要在迁移中为Fluent方法提供phpDocs支持,例如
$table->string("somestring")->nullable()->index();
发布供应商后,只需将 include_fluent 行从您的 config/ide-helper.php 文件改为
'include_fluent' => true,
然后运行 php artisan ide-helper:generate,现在您的IDE将识别所有的Fluent方法。
PhpStorm容器实例的Meta
可以生成PhpStorm meta文件以支持工厂设计模式。对于Laravel,这意味着我们可以让PhpStorm理解我们从IoC容器解析出的对象类型。例如,events将返回一个Illuminate\Events\Dispatcher对象,因此,通过meta文件,您可以调用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](https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67)
注意:您可能需要重新启动PhpStorm并确保
.phpstorm.meta.php被索引。注意:当您收到有关找不到类的致命异常时,请检查您的配置(例如,当您没有配置S3时,请删除S3作为云驱动器。当您不使用它时,请删除Redis ServiceProvider)。
Lumen安装
此包专注于Laravel开发,但也可以通过一些变通方法在Lumen中使用。因为Lumen的工作方式略有不同,它类似于Laravel的裸机版本,主要配置参数位于bootstrap/app.php中,因此需要进行一些修改。
启用Facades
虽然Laravel IDE Helper可以自动生成默认Facades进行代码提示,但Lumen没有启用Facades。如果您计划使用它们,您必须在“创建应用程序”部分下启用它们,取消注释此行
// $app->withFacades();
从那里开始,您应该可以使用 create_alias() 函数将更多的 Facades 添加到您的应用程序中。
添加服务提供者
您可以在 app/Providers/AppServiceProvider.php 中安装 Laravel IDE Helper,并取消注释此行,以便正确加载注册的 App 服务提供者。
// $app->register(App\Providers\AppServiceProvider::class);
如果您没有使用该行,通常在管理多个 Laravel/Lumen 安装时很有用,您需要在 bootstrap/app.php 中的 注册服务提供者 部分添加此行代码。
if ($app->environment() !== 'production') { $app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class); }
之后,Laravel IDE Helper 应该能够正常工作。在生成过程中,脚本可能会抛出异常,说明某些类不存在或存在未定义的索引。这是正常的,因为 Lumen 剥离了一些默认包,如 Cookies、Storage 和 Session。如果您计划添加这些包,您将需要手动添加它们,并在需要时创建额外的 Facades。
添加额外的 Facades
目前,Lumen IDE Helper 不会考虑在 bootstrap/app.php 下使用 create_alias() 创建的额外 Facades,因此您需要创建一个 config/app.php 文件,并将自定义别名再次添加到 aliases 数组中,如下所示
return [ 'aliases' => [ 'CustomAliasOne' => Example\Support\Facades\CustomAliasOne::class, 'CustomAliasTwo' => Example\Support\Facades\CustomAliasTwo::class, //... ] ];
运行 php artisan ide-helper:generate 后,建议(但不是强制)将 config/app.php 重命名为其他名称,直到您需要重新生成文档或将其部署到生产环境。Lumen 5.1+ 如果存在,将读取此文件以配置参数,如果它被完全填充,可能会覆盖一些配置。
许可证
Laravel IDE Helper 生成器是开源软件,许可协议为 MIT 许可协议