addDefinitions([ 'conifg' => $config, // more DI stuff ]); return $containerBuilder->build(); } /** * Tasking the instaniated Application, sets up all the routes for the * application. * * @param App $app * @return void */ protected static function establishRoutes(App $app): void { $app->get('/', function ($req, $res) { $res->getBody()->write(json_encode([ 'message' => "hello!" ])); return $res->withHeader("Content-Type", "application/json"); }); } /** * Taking an instantiated application, sets up all the middleware required * for the application to run. * * @param App $app */ protected static function establishMiddleware(App $app): void { $app->addErrorMiddleware(true, true, true); } /** * Instantiates the application. * * @return App */ public static function init(): App { $container = self::initContainer(); $app = AppFactory::createFromContainer($container); self::establishMiddleware($app); self::establishRoutes($app); return $app; } }