klsoft / yii3-swoole
The package provides the Swoole HTTP server for the Yii 3 application
1.0.0
2026-05-05 10:17 UTC
Requires
- ext-swoole: >=6.2
- httpsoft/http-message: ^1.1.6
- psr/container: ^2.0.2
- psr/http-factory: ^1.1
- psr/http-message: ^2.0
- symfony/console: ^7.4.7 || ^8.0.7
- yiisoft/aliases: ^3.1.1
- yiisoft/config: ^1.6.2
- yiisoft/di: ^1.4.1
- yiisoft/error-handler: ^4.0
- yiisoft/http: ^1.2
- yiisoft/log: ^2.2.0
- yiisoft/yii-http: ^1.1.1
README
The package provides the Swoole HTTP server for the Yii 3 application.
Requirement
- PHP 8.2 or higher.
- Swoole PHP extension 6.2.0 or higher.
Installation
composer require klsoft/yii3-swoole
How to use
Configure the resetting of service states.
For web applications that use AssetManager, add the following to the config/web/di/application.php file:
use Yiisoft\Aliases\Aliases; use Yiisoft\Assets\AssetManager; use Yiisoft\Assets\AssetLoaderInterface; use Yiisoft\Assets\AssetConverterInterface; use Yiisoft\Assets\AssetRegistrar; return [ // ... AssetManager::class => [ 'definition' => static function (ContainerInterface $container) use ($params): AssetManager { $assetManager = new AssetManager( $container->get(Aliases::class), $container->get(AssetLoaderInterface::class), $params['yiisoft/assets']['assetManager']['allowedBundleNames'], $params['yiisoft/assets']['assetManager']['customizedBundles'], ); $assetManager = $assetManager ->withConverter($container->get(AssetConverterInterface::class)); if ($params['yiisoft/assets']['assetManager']['publisher'] !== null) { $assetManager = $assetManager->withPublisher( $container->get($params['yiisoft/assets']['assetManager']['publisher']) ); } $assetManager->registerMany($params['yiisoft/assets']['assetManager']['register']); return $assetManager; }, 'reset' => function (ContainerInterface $container) use ($params) { $this->registrar = new AssetRegistrar($container->get(Aliases::class), $container->get(AssetLoaderInterface::class)); }, ], ];
Start the Swoole HTTP server:
./yii swoole start
Start the Swoole HTTP server using the specified options:
./yii swoole start --address=127.0.0.1 --port=9501
Restart the Swoole HTTP server worker processes:
./yii swoole reload
Shutdown the Swoole HTTP server:
./yii swoole shutdown
Configure the Swoole HTTP server.
Add the Swoole HTTP server settings to the config/console/params.php file:
Example:
return [ 'yiisoft/yii-console' => [ // ... 'swoole' => [ 'swooleServerSettings' => [ 'dispatch_mode' => 1 ] ] ], ];
Enable SSL:
return [ 'yiisoft/yii-console' => [ // ... 'swoole' => [ 'enableSwooleSsl' => true, 'swooleServerSettings' => [ 'ssl_cert_file' => __DIR__ . '/../ssl/domain.crt', 'ssl_key_file' => __DIR__ . '/../ssl/domain.key' ] ] ], ];