aharisu/generate-form-request-phpdoc

根据FormRequest类的规则规范自动生成PHPDoc属性

0.3.1 2023-06-21 05:48 UTC

This package is auto-updated.

Last update: 2024-09-03 04:03:25 UTC


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