runtime/swoole

Swoole runtime

Maintainers

👁 Nyholm

Package info

github.com/php-runtime/swoole

pkg:composer/runtime/swoole

Fund package maintenance!

nyholm

Statistics

Installs: 188 495

Dependents: 2

Suggesters: 0

Stars: 56

1.0.0 2025-12-18 07:34 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

Replaces

None

MIT dc987c388351536ec456758b956f4b7697145dfe

  • Tobias Nyholm <tobias.nyholm.woop@gmail.com>

This package is auto-updated.

Last update: 2026-06-18 08:38:06 UTC


README

A runtime for Swoole.

If you are new to the Symfony Runtime component, read more in the main readme.

Installation

composer require runtime/swoole

Usage

Define the environment variable APP_RUNTIME for your application.

APP_RUNTIME=Runtime\Swoole\Runtime

Pure PHP

// public/index.php

use Swoole\Http\Request;
use Swoole\Http\Response;

require_once dirname(__DIR__) . '/vendor/autoload_runtime.php';

return function () {
 return function (Request $request, Response $response) {
 $response->header("Content-Type", "text/plain");
 $response->end("Hello World\n");
 };
};

Symfony

// public/index.php

use App\Kernel;

require_once dirname(__DIR__) . '/vendor/autoload_runtime.php';

return function (array $context) {
 return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
};

Using Options

You can define some configurations using Symfony's Runtime APP_RUNTIME_OPTIONS API.

Option Description Default
host The host where the server should binds to (precedes SWOOLE_HOST environment variable) 127.0.0.1
port The port where the server should be listing (precedes SWOOLE_PORT environment variable) 8000
mode Swoole's server mode (precedes SWOOLE_MODE environment variable) SWOOLE_PROCESS
settings All Swoole's server settings (wiki.swoole.com/en/#/server/setting and wiki.swoole.com/en/#/http_server?id=configuration-options) []
// public/index.php

use App\Kernel;

$_SERVER['APP_RUNTIME_OPTIONS'] = [
 'host' => '0.0.0.0',
 'port' => 9501,
 'mode' => SWOOLE_BASE,
 'settings' => [
 'worker_num' => swoole_cpu_num() * 2,
 'enable_static_handler' => true,
 'document_root' => dirname(__DIR__) . '/public'
 ],
];

require_once dirname(__DIR__) . '/vendor/autoload_runtime.php';

return function (array $context) {
 return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
};