container->singleton(RandomGenerator::class, SecureRandomGenerator::class); // Register specific generators that depend on RandomGenerator $this->container->singleton(CsrfTokenGenerator::class, function (Container $container): CsrfTokenGenerator { return new CsrfTokenGenerator($container->get(RandomGenerator::class)); }); } }