thecodingmachine / symfony-httpinterop-bridge
此包已被废弃,不再维护。作者建议使用thecodingmachine/symfony-psr15-bridge包代替。
这是一个连接Symfony中间件(StackPHP)和符合规范的中间件的桥梁,用于将Symfony Http抽象转换为PSR-15,反之亦然。
v1.0.0
2018-05-28 15:57 UTC
Requires
- php: >=7.0
- psr/http-message: ^1.0
- psr/http-server-middleware: ^1.0
- symfony/http-foundation: ^2.1 | ^3 | ^4
Requires (Dev)
- phpunit/phpunit: ^5.5
- satooshi/php-coveralls: ^1.0
- symfony/http-kernel: ^2.1 | ^3 | ^4
- symfony/psr-http-message-bridge: ^1.0
- zendframework/zend-diactoros: ^1.0
This package is auto-updated.
Last update: 2021-04-29 21:11:38 UTC
README
Symfony HttpKernel(也称为StackPHP中间件)与PSR-15中间件之间的桥梁。
这些适配器建立在现有的symfony/psr-http-message-bridge之上,该桥接器连接了Symfony和PSR-7 HTTP消息。
安装
推荐通过Composer安装symfony-psr15-bridge。
composer require thecodingmachine/symfony-psr15-bridge
使用方法
默认情况下,使用Symfony HttpFoundation和HttpKernel。对于PSR-7,使用Zend-Diactoros实现。如果需要,可以更改这些实现。
包装HttpKernel
<?php // Use the Psr15ToSymfonyBridge adapter $psr15Middleware = new Psr15ToSymfonyBridge($yourHttpKernel); // Handling PSR-7 requests $psr7Response = $psr15Middleware->process($psr7Request, $dummyNextPsr7Middleware);
重要:Symfony Http Kernels没有“下一个”中间件的概念。因此,传递给process方法的“下一个”PSR-7中间件将不会被调用。
包装PSR-7回调
<?php // Use the Psr15ToSymfonyBridge adapter $symfonyKernel = new SymfonyToPsr15Bridge($nextSymfonyMiddleware, $yourPsr15Middleware); // Handling Symfony requests $symfonyResponse = $symfonyKernel->handle($symfonyRequest);
注意:适配器的构造函数接受两个中间件:将由“委托”psr15功能调用的“下一个”Symfony中间件和要包装的psr15中间件。
其他已知的中间件适配器
最初,我计划将此项目作为一个PR提交给h4cc/stack-psr7-bridge(该桥接器是在PSR-7中间件的概念标准化之前开发的,而http-interop本身又是PSR-15的前身)。很快我就意识到,这实际上是一个完整的重写,所以我决定为它创建一个新的项目。