klsoft/yii3-swoole

The package provides the Swoole HTTP server for the Yii 3 application

Maintainers

Package info

github.com/klsoft-web/yii3-swoole

pkg:composer/klsoft/yii3-swoole

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2026-05-05 10:17 UTC

This package is auto-updated.

Last update: 2026-05-05 10:22:31 UTC


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'
            ]
        ]
    ],
];