yii2-extensions / psr-bridge
PSR bridge for Yii2
Fund package maintenance!
terabytesoftw
Installs: 3 253
Dependents: 2
Suggesters: 0
Security: 0
Stars: 3
Watchers: 0
Forks: 0
Open Issues: 1
Requires
- php: >=8.1
- ext-filter: *
- ext-mbstring: *
- psr/http-factory: ^1.1
- psr/http-message: ^2.0
- psr/http-server-handler: ^1.0
- yiisoft/yii2: ^2.0.53|^22
Requires (Dev)
- httpsoft/http-message: ^1.1
- infection/infection: ^0.27|^0.31
- maglnet/composer-require-checker: ^4.1
- php-forge/support: ^0.2
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-strict-rules: ^2.0.3
- phpunit/phpunit: ^10.5
- rector/rector: ^2.1
- symplify/easy-coding-standard: ^12.5
- xepozz/internal-mocker: ^1.4
- yii2-extensions/phpstan: ^0.3
Suggests
- yii2-extensions/worker-debug: Provides Yii debug integration for PSR requests
This package is auto-updated.
Last update: 2025-09-28 11:56:09 UTC
README
PSR bridge
Transform your Yii2 applications into high-performance, PSR-compliant powerhouses
Supporting traditional SAPI, RoadRunner, FrankenPHP, and worker-based architectures
Available deployment options
High-Performance Worker Mode
Long-running PHP workers for higher throughput and lower latency.
Features
Installation
composer require yii2-extensions/psr-bridge:^0.1
Quick start
Worker mode (FrankenPHP)
<?php declare(strict_types=1); // disable PHP automatic session cookie handling ini_set('session.use_cookies', '0'); require_once dirname(__DIR__) . '/vendor/autoload.php'; use yii2\extensions\frankenphp\FrankenPHP; use yii2\extensions\psrbridge\http\StatelessApplication; // Load environment variables from .env file $dotenv = Dotenv\Dotenv::createImmutable(dirname(__DIR__)); $dotenv->safeLoad(); // production default (change to 'true' for development) define('YII_DEBUG', $_ENV['YII_DEBUG'] ?? false); // production default (change to 'dev' for development) define('YII_ENV', $_ENV['YII_ENV'] ?? 'prod'); require_once dirname(__DIR__) . '/vendor/yiisoft/yii2/Yii.php'; $config = require_once dirname(__DIR__) . '/config/web/app.php'; $runner = new FrankenPHP(new StatelessApplication($config)); $runner->run();
Worker mode (RoadRunner)
<?php declare(strict_types=1); require __DIR__ . '/../vendor/autoload.php'; use yii2\extensions\psrbridge\http\StatelessApplication; use yii2\extensions\roadrunner\RoadRunner; define('YII_DEBUG', getenv('YII_DEBUG') ?? false); define('YII_ENV', getenv('YII_ENV') ?? 'prod'); require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php'; $config = require dirname(__DIR__) . '/config/web/app.php'; $runner = new RoadRunner(new StatelessApplication($config)); $runner->run();
PSR-7 Conversion
// Convert Yii2 request to PSR-7 $request = Yii::$app->request; $psr7Request = $request->getPsr7Request(); // Convert Yii2 response to PSR-7 $response = Yii::$app->response; $psr7Response = $response->getPsr7Response(); // Emit PSR-7 response $emitter = new yii2\extensions\psrbridge\emitter\SapiEmitter(); $emitter->emit($psr7Response);
Documentation
For detailed configuration options and advanced usage.
- ๐ Installation Guide
- โ๏ธ Configuration Reference
- ๐ก Usage Examples
- ๐งช Testing Guide