Quick Start
Follow these steps to get started with PHPStreamServer and run your first application. In this example, you will set up a basic HTTP server and a general-purpose worker.
Install Composer Packages
$ composer require phpstreamserver/core phpstreamserver/http-server
Configure a Simple Server
server.php
use Amp\Http\Server\HttpErrorException;
use Amp\Http\Server\Request;
use Amp\Http\Server\Response;
use PHPStreamServer\Core\Server;
use PHPStreamServer\Core\Worker\WorkerProcess;
use PHPStreamServer\Plugin\HttpServer\HttpServerPlugin;
use PHPStreamServer\Plugin\HttpServer\Worker\HttpServerProcess;
$server = new Server();
$server->addPlugin(
    new HttpServerPlugin(),
);
$server->addWorker(
    new WorkerProcess(
        name: 'Worker',
        count: 1,
        onStart: static function (WorkerProcess $worker): void {
            $worker->logger->notice("Hello from worker!");
        }
    ),
    new HttpServerProcess(
        name: 'Web Server',
        count: 2,
        listen: '0.0.0.0:8080',
        onRequest: static function (Request $request, HttpServerProcess $worker): Response {
            return match ($request->getUri()->getPath()) {
                '/' => new Response(body: 'Hello world'),
                '/ping' => new Response(body: 'pong'),
                default => throw new HttpErrorException(404),
            };
        }
    ),
);
exit($server->run());
Run Server
$ php server.php start
The output will appear in the console as follows:

Now open your web browser and navigate to http://127.0.0.1:8080/