alanvdb/middleware-dispatcher

一个符合PSR标准的中间件分发器

v1.0.0 2024-08-06 15:06 UTC

This package is auto-updated.

Last update: 2024-09-06 18:33:16 UTC


README

一个符合PSR标准的中间件分发器。

概述

middleware-dispatcher库提供了一个简单且可扩展的符合PSR-15标准的中间件分发器。它允许您通过处理中间件堆栈来处理HTTP服务器请求。

功能

  • 符合PSR-15
  • 简单易用的API
  • 支持任何PSR-15兼容的中间件
  • 优雅地处理异常和无效的中间件

安装

要安装middleware-dispatcher库,请使用Composer

composer require alanvdb/middleware-dispatcher

使用方法

以下是如何使用middleware-dispatcher的示例

<?php

require 'vendor/autoload.php';

use AlanVdb\Dispatcher\Dispatcher;
use AlanVdb\Dispatcher\Factory\DispatcherFactory;
use Psr\Http\Server\RequestHandlerInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Server\MiddlewareInterface;
use GuzzleHttp\Psr7\ServerRequest;
use GuzzleHttp\Psr7\Response;

class ExampleMiddleware implements MiddlewareInterface
{
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        // Add your middleware logic here
        return $handler->handle($request);
    }
}

$middlewares = [new ExampleMiddleware()];
$factory = new DispatcherFactory();
$dispatcher = $factory->createDispatcher($middlewares);

$request = new ServerRequest('GET', 'https://api.example.com/data');
$response = $dispatcher->handle($request);

echo $response->getBody();

测试

要运行测试,请使用PHPUnit。请确保已安装PHPUnit并执行以下命令

vendor/bin/phpunit

贡献

欢迎贡献!请按照以下步骤进行贡献

  1. 复制项目
  2. 为您的功能创建分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature
  5. 打开拉取请求

确保您的代码遵循PSR编码标准并包含相关的测试。

许可证

本项目采用MIT许可证。有关详细信息,请参阅MIT许可证文件。

问题和反馈

如果您遇到任何问题或需要反馈,请在GitHub仓库上创建一个问题。

致谢