set(Settings::class, function (): Settings { return new Settings(); }); // Twig template engine $container->set(self::TWIG, function (ContainerInterface $c) { /** @var Settings $settings */ $settings = $c->get(Settings::class); return Twig::create(self::TWIG_TEMPLATE_DIR, $settings->getTwigSettings()); }); // Controllers $container->set(HelloWorldController::class, function (ContainerInterface $c) { return new HelloWorldController( $c->get(self::TWIG), $c->get(HelloWorld::class) ); }); // Services $container->set(HelloWorld::class, function () { return new HelloWorld(); }); return $container; } }