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-25 04:40 UTC

This package is auto-updated.

Last update: 2026-05-25 04:43:44 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) {
            $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:

./yii swoole restart

Restart the Swoole HTTP server worker processes:

./yii swoole reload

Shutdown the Swoole HTTP server:

./yii swoole shutdown

Configuring the Swoole HTTP server.

Add the Swoole HTTP server settings to the config/web/params.php file and then restart the server:

Example:

return [
    // ...
    'klsoft/yii3-swoole' => [
        'swooleServerSettings' => [
             'log_file'   => __DIR__ . '/../../runtime/logs/swoole.log'
        ]
    ],
];

Enable SSL:

return [
    // ...
    'klsoft/yii3-swoole' => [
        'enableSwooleSsl' => true,
        'swooleServerSettings' => [
            'ssl_cert_file' => __DIR__ . '/../ssl/domain.crt',
            'ssl_key_file' => __DIR__ . '/../ssl/domain.key'
        ]
    ],
];

Configuring the SwooleRequestHandlerInterface.

Configure your own version of the SwooleRequestHandlerInterface in the config/web/di/application.php file:

use Klsoft\Yii3Swoole\SwooleRequestHandlerInterface;
use Psr\Container\ContainerInterface;

return [
    // ...
    SwooleRequestHandlerInterface::class => static function (ContainerInterface $container) {
        return new MySwooleRequestHandler(
            // ...
        );
    }
];