h4cc/stack-psr7-bridge

将 Symfony Http 抽象转换为 PSR-7 并反向转换的 StackPHP 中间件。

v0.1 2015-06-08 07:35 UTC

This package is not auto-updated.

Last update: 2024-09-18 09:16:50 UTC


README

StackPHP 中间件,用于使用 Symfony HttpKernel 应用程序和 PSR-7 应用程序透明化。

Build Status HHVM Status Scrutinizer Code Quality Code Coverage

此中间件试图使使用 Symfony HttpKernel 应用程序和 PSR-7 尽可能简单。

封装的应用程序可以是

  • 任何 Symfony HttpKernel
  • 任何期望 function(RequestInterface $request, ResponseInterface $response, $next = null) 的回调

无论封装的是何种类型的应用程序,桥接器都会相应地转换传入的请求和传出的响应,以匹配使用的接口。

此中间件基于的实现在 https://github.com/symfony/psr-http-message-bridge

用法

默认情况下,使用 Symfony HttpFoundation 和 HttpKernel。对于 PSR-7,使用 Zend-Diactoros 实现。如果需要,可以更改这些实现。

封装 HttpKernel

<?php

$bridge = new Psr7Bridge($yourHttpKernel);

// Handling PSR-7 requests
$psr7Response = $bridge->__invoke($psr7Request, $psr7Response);

// Handling Symfony requests
$symfonyResponse = $bridge->_handle($symfonyRequest);

封装 PSR-7 回调

PHP-FIG 尚未定义期望的 PSR-7 回调格式,可能需要更改!

<?php

$psr7Callback = function(RequestInterface $request, ResponseInterface $response, $next = null) {
  // Creating a PSR-7 Response here ...
};

$bridge = new Psr7Bridge($psr7Callback);

// Handling PSR-7 requests
$psr7Response = $bridge->__invoke($psr7Request, $psr7Response);

// Handling Symfony requests
$symfonyResponse = $bridge->_handle($symfonyRequest);

安装

安装 stack-psr7-bridge 的推荐方式是通过 Composer

composer require h4cc/stack-psr7-bridge

小贴士:你应该浏览 h4cc/stack-psr7-bridge 页面以选择要使用的稳定版本,避免使用 @stable 元约束。

许可证

h4cc/stack-psr7-bridge 在 MIT 许可证下发布。有关详细信息,请参阅附带 LICENSE 文件。