<?php 
//JSRUN引擎2.0，支持多达30种语言在线运行，全仿真在线交互输入输出。 
declare(strict_types=1);

// 首先，我们需要定义注解，注解本身只是一个原生的 PHP 类，并且自身被打上了注解的注释

#[Attribute(Attribute::TARGET_CLASS)]
class ApplyMiddleware
{
    public array $middleware = [];

    public function __construct(...$middleware)
    {
        $this->middleware = $middleware;
    }

    public function run()
    {
        foreach($this->middleware as $middleware) {
            echo $middleware.PHP_EOL;
        }
    }
}

// 下面的语法会添加上述注解到 MyController 类，并且传入 auth 作为参数

#[ApplyMiddleware('auth', 'gzy')]
class MyController
{
    public function index()
    {
    }
}

// 然后我们就可以在类中使用反射获取所有的 ApplyMiddleware 注解并读取给定的中间件参数

$reflectionClass = new ReflectionClass(MyController::class);

$attributes = $reflectionClass->getAttributes(ApplyMiddleware::class);

foreach ($attributes as $attribute) {
    $middlewareAttribute = $attribute->newInstance();
    $middlewareAttribute->run();
}

exit;