hkinnoteam/zmiddleware

此包最新版本(1.0.2)没有可用的许可信息。

1.0.2 2021-01-07 15:20 UTC

This package is auto-updated.

Last update: 2024-09-07 23:19:14 UTC


README

安装

composer require "hkinnoteam/zmidlleware"

实现

  • 创建一个实现了 ZMiddleware\Contract\MiddlewareInterface 的类
use ZMiddleware\Contract\MiddlewareInterface;
class AssignResultMiddleware implements MiddlewareInterface
{

    public function handle($pass, \Closure $next)
    {
        // before request
        $validate = true;
        if ($validate){
            return 'not allow';
        }
        
        // request method
        $number = $next($pass);
        
        //after request
        $number->total_qty = 100;
        return $number;
    }
}

将注解添加到您的API方法中

use AssignResultMiddleware;
use ZMiddleware\Annotations\Middleware;
class Foo
{

    /**
     * single middleware
     * 
     * @Middleware(AssignResultMiddleware::class)
     * @return object
     */
    public static function Foo(): object
    {
        $foo = new \stdClass();
        return $foo;
    }
}

您还可以分配多个中间件

use AssignBooMiddleware;
use AssignFooMiddleware;
use ZMiddleware\Annotations\Middlewares;
use ZMiddleware\Annotations\Middleware;
class Foo
{

    /**
     * multiple middlewares
     *
     * @Middlewares({
     *     @Middleware(AssignBooMiddleware::class)
     *     @Middleware(AssignFooMiddleware::class)
     * })
     * @return object
     */
    public static function Foo(): object
    {
        $foo = new \stdClass();
        return $foo;
    }
}