runtime / psr-17
支持任何 PSR-17 实现的 PSR 运行时
dev-main
2023-11-22 12:14 UTC
Requires
- php: >=8.0.5
- nyholm/psr7-server: ^1.0
- psr/http-factory-implementation: ^1.0
- psr/http-server-handler: ^1.0
- symfony/runtime: ^5.4 || ^6.0 || ^7.0
Requires (Dev)
- nyholm/psr7: ^1.4
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-22 14:03:04 UTC
README
支持任何 PSR-17 兼容实现的运行时。
如果您是 Symfony 运行时组件的新手,请阅读 主 README 了解更多。
安装
安装此运行时以及提供 psr/http-factory-implementation 的包。
composer require runtime/psr-17 slim/psr7
同时更新您的 composer.json 并添加一些额外配置
{ "require": { "...": "..." }, "extra": { "runtime": { "psr17_server_request_factory": "Slim\\Psr7\\Factory\\ServerRequestFactory" "psr17_uri_factory": "Slim\\Psr7\\Factory\\UriFactory" "psr17_uploaded_file_factory": "Slim\\Psr7\\Factory\\UploadedFileFactory" "psr17_stream_factory": "Slim\\Psr7\\Factory\\StreamFactory" } } }
使用方法
此运行时将自动被发现。您可以通过定义环境变量 APP_RUNTIME
来强制您的应用程序使用此运行时。
APP_RUNTIME=Runtime\Psr17\Runtime
PSR-7
// public/index.php use Psr\Http\Message\ServerRequestInterface; use Any\Psr7; require_once dirname(__DIR__).'/vendor/autoload_runtime.php'; return function (ServerRequestInterface $request) { return new Psr7\Response(200, [], 'PSR-7'); };
PSR-15
// public/index.php use Psr\Http\Server\RequestHandlerInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ResponseInterface; use Any\Psr7; require_once dirname(__DIR__).'/vendor/autoload_runtime.php'; class Application implements RequestHandlerInterface { // ... public function handle(ServerRequestInterface $request): ResponseInterface { return new Psr7\Response(200, [], 'PSR-15'); } } return function (array $context) { return new Application($context['APP_ENV'] ?? 'dev'); };