build(); // Instantiate the app AppFactory::setContainer($container); $app = Bridge::create($container); // Register middleware $app->addRoutingMiddleware(); // Register routes $routes = require __DIR__ . '/../app/routes.php'; $routes($app); // Add Body Parsing Middleware $app->addBodyParsingMiddleware(); // Add Error Middleware $errorMiddleware = $app->addErrorMiddleware(true, true, true); Loop::get()->addSignal(SIGTERM, function() { exit; }); /* workaround for non-async batch processors */ if (($tracerProvider = Globals::tracerProvider()) instanceof TracerProviderInterface) { Loop::addPeriodicTimer(Configuration::getInt(Variables::OTEL_BSP_SCHEDULE_DELAY)/1000, function() use ($tracerProvider) { $tracerProvider->forceFlush(); }); } if (($meterProvider = Globals::meterProvider()) instanceof MeterProviderInterface) { Loop::addPeriodicTimer(Configuration::getInt(Variables::OTEL_METRIC_EXPORT_INTERVAL)/1000, function() use ($meterProvider) { $meterProvider->forceFlush(); }); } $server = new HttpServer(function (ServerRequestInterface $request) use ($app) { $response = $app->handle($request); echo sprintf('[%s] "%s %s HTTP/%s" %d %d %s', date('Y-m-d H:i:sP'), $request->getMethod(), $request->getUri()->getPath(), $request->getProtocolVersion(), $response->getStatusCode(), $response->getBody()->getSize(), PHP_EOL, ); return $response; }); $address = '0.0.0.0:' . getenv('QUOTE_SERVICE_PORT'); $socket = new SocketServer($address); $server->listen($socket); echo "Listening on: {$address}" . PHP_EOL;