calgamo/middleware

此包已被 废弃 并不再维护。作者建议使用 knot-lib/middleware 包。

Calgamo 框架的中间件和管道库。

0.8.1 2019-12-03 09:55 UTC

This package is auto-updated.

Last update: 2019-12-09 11:02:00 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Code Climate Total Downloads

描述

Calgamo 框架的中间件和管道库。

特性

演示

示例 1:如何使用中间件和管道

use Calgamo\Kernel\MiddlewareInterface;
use Calgamo\Kernel\RequestInterface;
use Calgamo\Kernel\RequestHandlerInterface;
use Calgamo\Kernel\Request\PhpArrayRequest;
use Calgamo\Middleware\Pipeline\Pipeline;

class FirstMiddleware implements MiddlewareInterface
{
    public function process(RequestInterface $request, RequestHandlerInterface $handler)
    {
        echo 'FirstMiddleware: 1' . PHP_EOL;
        $response = $handler->handle($request);
        echo 'FirstMiddleware: 2' . PHP_EOL;
        return $response;
    }
}
class SecondMiddleware implements MiddlewareInterface
{
    public function process(RequestInterface $request, RequestHandlerInterface $handler)
    {
        echo 'SecondMiddleware: 1' . PHP_EOL;
        $response = $handler->handle($request);
        echo 'SecondMiddleware: 2' . PHP_EOL;
        return $response;
    }
}
class ThirdMiddleware implements MiddlewareInterface
{
    public function process(RequestInterface $request, RequestHandlerInterface $handler)
    {
        echo 'ThirdMiddleware: 1' . PHP_EOL;
        $response = $handler->handle($request);
        echo 'ThirdMiddleware: 2' . PHP_EOL;
        return $response;
    }
}

$pipeline = new Pipeline();
$pipeline->push(new FirstMiddleware());
$pipeline->push(new SecondMiddleware());
$pipeline->push(new ThirdMiddleware());

$pipeline->run(new PhpArrayRequest);

输出

ThirdMiddleware: 1
SecondMiddleware: 1
FirstMiddleware: 1
FirstMiddleware: 2
SecondMiddleware: 2
ThirdMiddleware: 2

用法

要求

PHP 7.1 或更高版本

安装 calgamo/middleware

推荐通过 Composer 安装 calgamo/middleware。

composer require calgamo/middleware

安装后,您需要引入 Composer 的自动加载器

require 'vendor/autoload.php';

许可证

MIT

作者

stk2k

免责声明

本软件无任何保证。

我们不承担因使用本软件而产生的任何结果的责任。

请自行承担责任。