aharisu / generate-form-request-phpdoc
根据FormRequest类的规则规范自动生成PHPDoc属性
0.3.1
2023-06-21 05:48 UTC
Requires
- php: ^8.0
- composer/class-map-generator: ^1.0
- laravel/framework: ^8 || ^9 || ^10
- nikic/php-parser: ^4.15
- phpstan/phpdoc-parser: ^1.18
README
根据FormRequest类的规则规范自动生成PHPDoc属性。
安装
composer require --dev aharisu/generate-form-request-phpdoc
用法
php artisan form-request:generate
将继承自FormRequest的类的PHPDoc输出到外部文件(例如_form_request_phpdoc.php)中,位于app/Http/Requests目录下。
例如
<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class FooRequest extends FormRequest { public function rules() { return [ 'id' => ["required", "integer"], 'int_value' => ["nullable", "integer"], 'numeric_value' => ["required", "numeric"], 'string_value' => ["required", "string"], 'bool_value' => ["nullable", "boolean"], 'json_value' => ["required", "json"], 'indexed_array' => ["required", "array"], 'indexed_array.*' => ["required", "string"], 'shaped_array' => ["nullable", "array"], 'shaped_array.id' => ["required", "int"], 'shaped_array.name' => ["required", "string"], 'shaped_array.thumbnail' => ["nullable", "file"], ]; } }
namespace App\Http\Requests { /** * @property-read int $id * @property-read ?int $int_value * @property-read int|float $numeric_value * @property-read string $string_value * @property-read ?bool $bool_value * @property-read mixed $json_value * @property-read string[] $indexed_array * @property-read ?array{id: int, name: string, thumbnail: ?\Illuminate\Http\UploadedFile} $shaped_array */ class FooRequest extends \Illuminate\Foundation\Http\FormRequest {} }
参数
--write
直接将PHPDoc写入您的FormRequest文件
目标指定
您可以通过类名及命名空间
或文件路径
指定输出目标。
php artisan form-request:generate App\Http\Requests\FooRequest
php artisan form-request:generate app/Http/Requests/FooRequest.php
也可以指定多个目标。
php artisan form-request:generate App\Http\Requests\FooRequest app/Http/Requests/BarRequest.php
其他设置
php artisan vendor:publish --provider="aharisu\GenerateFormRequestPHPDoc\GenerateFormRequestPhpdocServiceProvider"
您可以在config/generate-form-request-phpdoc.php中更改一些行为。
许可证
Apache 2.0 & MIT