echo-fusion/middlewaremanager
Composer 安装命令:
composer require echo-fusion/middlewaremanager
包简介
a middleware manager implements PSR-15 and PSR-7
README 文档
README
This is a flexible package for managing middleware in PHP applications. It enables you to create a middleware pipeline, where middleware processes a request and passes it on to the next, providing a clean and organized way to handle middleware logic.
This package is compliant with PSR-1, PSR-2, PSR-7 and PSR-15.
Installation
Install the package via Composer:
composer require echo-fusion/middlewaremanager
Requirements
The following versions of PHP are supported by this version.
- PHP 8.1
- PHP 8.2
- PHP 8.3
Usage
Here’s how to use the MiddlewareManager to set up and run a middleware pipeline.
1. Define handler
Define your handlers in proper directory and pass one of them to middleware manager to run it at the end of the pipeline:
use Psr\Http\Message\ResponseFactoryInterface use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; class MyMiddlewareHandler implements RequestHandlerInterface { public function __construct(private readonly ResponseFactoryInterface $responseFactory) { } public function handle(ServerRequestInterface $request): ResponseInterface { // write your code here return $this->responseFactory->createResponse(); } }
2. Define middlewares
Define your middlewares in proper directory in separate files:
use EchoFusion\MiddlewareManager\MiddlewareManager; use EchoFusion\MiddlewareManager\MiddlewarePipeline; use Psr\Container\ContainerInterface; use Psr\Http\Message\ServerRequestInterface; class CoreMiddleware implements MiddlewareInterface { public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { // ex: manipulate request $request = $request->withAttribute('key','value'); return $handler->handle($request); } } class OtherMiddleware implements MiddlewareInterface { public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $response = $handler->handle($request); // ex: manipulate response return $this->convertedResponse($response); } }
3. Run MiddlewareManager
To add middleware to the manager, you have two options:
- Add middleware as 'core middleware', which always runs before any middleware added later.
- Add middleware dynamically (e.g., useful for adding route-specific middleware).
Here is an example of how you can run MiddlewareManager:
Note: Don't forget to instantiate below injected dependencies in your container.
use Psr\Container\ContainerInterface; use Psr\Http\Message\ServerRequestInterface; use EchoFusion\MiddlewareManager\MiddlewarePipelineInterface; function (ContainerInterface $container, ServerRequestInterface $request, MiddlewarePipelineInterface $pipeline) { // optional $coreMiddlewares = [ CoreMiddleware::class, ]; $middlewareManager = new MiddlewareManager( $container, $pipeline, $coreMiddlewares ); // add or remove your necessary middlewares if you want $middlewareManager->add(OtherMiddleware::class); $middlewareManager->remove(OtherMiddleware::class); // ... // instantiate handler directly or get from container to resolve possible dependencies $handler = new MyMiddlewareHandler(); $response = $middlewareManager->dispatch($request, $handler); echo $response; }
Testing
Testing includes PHPUnit and PHPStan (Level 7).
$ composer test
Credits
Developed and maintained by Amir Shadanfar.
Connect on LinkedIn.
License
The MIT License (MIT). Please see License File for more information.
echo-fusion/middlewaremanager 适用场景与选型建议
echo-fusion/middlewaremanager 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 8 次下载、GitHub Stars 达 1, 最近一次更新时间为 2024 年 09 月 30 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「psr-7」 「psr-15」 「middleware manager」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 echo-fusion/middlewaremanager 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 echo-fusion/middlewaremanager 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 echo-fusion/middlewaremanager 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Shoot aims to make providing data to your templates more manageable
Model of a web-based resource
Interfaces for web resource models and services to retrieve and create them
Interface for a factory to create Psr\Http\Message\StreamInterface objects
A PSR-7 compatible library for making CRUD API endpoints
Retrieve a WebResourceInterface instance over HTTP
统计信息
- 总下载量: 8
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 18
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-09-30