thecodingmachine/symfony-httpinterop-bridge

此包已被废弃,不再维护。作者建议使用thecodingmachine/symfony-psr15-bridge包代替。

这是一个连接Symfony中间件(StackPHP)和符合规范的中间件的桥梁,用于将Symfony Http抽象转换为PSR-15,反之亦然。

v1.0.0 2018-05-28 15:57 UTC

README

Symfony HttpKernel(也称为StackPHP中间件)与PSR-15中间件之间的桥梁。

Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality Build Status Coverage Status

这些适配器建立在现有的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的前身)。很快我就意识到,这实际上是一个完整的重写,所以我决定为它创建一个新的项目。