phpsgi/funk
Composer 安装命令:
composer require phpsgi/funk
包简介
An implementation of PHPSGI middleware specification
README 文档
README
Funk is an implementation of PHPSGI. It supports HTTP servers implemented with PHP SAPI (Apache2 mod_php, php-fpm, fastcgi), therefore you can integrate your application with Funk and switch to different HTTP server implementation.
PHPSGI and Funk aims to provide lightweight HTTP interfaces, middlewares for web frameworks. It's a bit different from the PSR-7 spec. PHPSGI focuses on the core data structure instead of forcing components to implement the interface requirements.
Components
- HTTP server (with event extension or
socket_select) - SAPI support (php-fpm, apache2 php handler servers)
- Middlewares
- Middleware Compositor
- A Simple Mux Builder (integrated with Pux)
Environment
// This creates $env array from $_SERVER, $_REQUEST, $_POST, $_GET ... $env = Environment::createFromGlobals();
Application
$app = function(array & $environment, array $response) { return [ 200, [ 'Content-Type' => 'text/plain' ], 'Hello World' ]; };
Responder
SAPIResponder
You can integrate your application with SAPIResponder to support Apache2 php handler / php-fpm / fastcgi.
use Funk\Responder\SAPIResponder; $fd = fopen('php://output', 'w'); $responder = new SAPIResponder($fd); $responder->respond([ 200, [ 'Content-Type: text/plain' ], 'Hello World' ]); fclose($fd);
use Funk\Responder\SAPIResponder; $env = Environment::createFromGlobals(); $app = function(array & $environment, array $response) { return [ 200, [ 'Content-Type' => 'text/plain' ], 'Hello World' ]; }; $fd = fopen('php://output', 'w'); $responder = new SAPIResponder($fd); $responder->respond($app($env, [])); fclose($fd);
Middleware
Funk\Middleware\ContentNegotiationMiddlewareFunk\Middleware\CORSMiddlewareFunk\Middleware\GeocoderMiddlewareFunk\Middleware\HeadMiddlewareFunk\Middleware\TryCatchMiddlewareFunk\Middleware\XHProfMiddlewareFunk\Middleware\XHTTPMiddleware
use Funk\Environment; use Funk\Middleware\TryCacheMiddleware; $app = function(array $environment, array $response) { return [ 200, ['Content-Type' => 'text/html' ], 'Hello World' ]; }; $middleware = new TryCatchMiddleware($app); $env = Environment::createFromGlobals(); $response = $middleware($env, [200, [], []]);
Contributing
Testing XHProf Middleware
Define your XHPROF_ROOT in your phpunit.xml, you can copy phpunit.xml.dist to phpunit.xml,
for example:
<php> <env name="XHPROF_ROOT" value="/Users/c9s/src/php/xhprof"/> </php>
统计信息
- 总下载量: 950
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 14
- 点击次数: 3
- 依赖项目数: 11
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-09-14