uzbek/laravel-attribute-scanner

Laravel项目PHP8属性扫描器


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Laravel项目PHP8属性扫描器

安装

您可以通过composer安装此包

composer require uzbek/laravel-attribute-scanner

使用方法

use Uzbek\LaravelAttributeScanner\Facades\AttributeScanner;

$attributes = AttributeScanner::getAttributes(asArray: true);

// or

use Uzbek\LaravelAttributeScanner\LaravelAttributeScanner;

$scanner = new LaravelAttributeScanner(directories: ['app/Models', 'app/Http/Controllers']);
$attributes = $scanner->getAttributes();

结果示例

asArray = false (默认)

[
    "App\Http\Controllers\UserController@create" => [{...},{...}], #Uzbek\LaravelAttributeScanner\Attribute[],   (method)
    "App\Http\Controllers\UserController@update>id" => [{...}], #Uzbek\LaravelAttributeScanner\Attribute[],   (parameter)
    "App\Http\Controllers\UserController.service" => [{...}], #Uzbek\LaravelAttributeScanner\Attribute[],   (property)
]

asArray = true

[
    "App\Http\Controllers\UserController@create" => [
        [
            "class" => "App\Http\Controllers\UserController",
            "method" => "create",
            "target" => "method",
            "name" => "Uzbek\LaravelValidationAttributes\Attributes\Validators",
            "arguments" => [
                [
                    "name" => "required|string",
                    "email" => "required|email",
                    ...
                ],
            ],
        ]
    ],
    "App\Http\Controllers\UserController@update>id" => [
        [
            "class" => "App\Http\Controllers\UserController",
            "method" => "update",
            "target" => "parameter",
            "parameter" => "id",
            "name" => "Uzbek\SomeAttributes\ID",
            "arguments" => [],
        ]
    ],
    "App\Http\Controllers\UserController.service" => [
        [
            "class" => "App\Http\Controllers\UserController",
            "target" => "property",
            "property" => "service",
            "name" => "Uzbek\SomeAttributes\Readonly",
            "arguments" => [],
        ]
    ],
    "App\Http\Controllers\UserController:IS_PUBLIC" => [
        [
            "class" => "App\Http\Controllers\UserController",
            "target" => "constant",
            "constant" => "IS_PUBLIC",
            "name" => "Uzbek\SomeAttributes\Casts\Integer",
            "arguments" => [],
        ]
    ],
    ...
]

测试

composer test

变更日志

请参阅CHANGELOG获取最近更改的更多信息。

贡献

请参阅CONTRIBUTING获取详细信息。

安全漏洞

请参阅我们的安全策略了解如何报告安全漏洞。

鸣谢

许可协议

MIT许可协议 (MIT)。请参阅许可文件获取更多信息。