Joli\SlackSecretSanta\SantaKernel::configureContainer PHP Method

configureContainer() protected method

You can register extensions: $c->loadFromExtension('framework', array( 'secret' => '%secret%' )); Or services: $c->register('halloween', 'FooBundle\HalloweenProvider'); Or parameters: $c->setParameter('halloween', 'lot of fun');
protected configureContainer ( ContainerBuilder $c, Symfony\Component\Config\Loader\LoaderInterface $loader )
$c Symfony\Component\DependencyInjection\ContainerBuilder
$loader Symfony\Component\Config\Loader\LoaderInterface
    protected function configureContainer(ContainerBuilder $c, LoaderInterface $loader)
    {
        $session = ['handler_id' => 'session.handler.predis', 'name' => 'santaSession'];
        if ($c->getParameter('kernel.environment') === 'test') {
            $session['storage_id'] = 'session.storage.filesystem';
            $session['handler_id'] = 'session.handler.native_file';
        }
        $c->loadFromExtension('framework', ['secret' => 'NotSoRandom...:)', 'session' => $session, 'assets' => [], 'templating' => ['engines' => ['twig']]]);
        $c->loadFromExtension('twig', ['strict_variables' => '%kernel.debug%', 'debug' => '%kernel.debug%']);
        if ($c->getParameter('kernel.environment') === 'dev') {
            $c->loadFromExtension('framework', ['profiler' => ['only_exceptions' => false]]);
            $c->loadFromExtension('web_profiler', ['toolbar' => true, 'intercept_redirects' => false]);
        }
        if (empty($_ENV['SLACK_CLIENT_SECRET']) || empty($_ENV['SLACK_CLIENT_ID'])) {
            $_ENV['SLACK_CLIENT_SECRET'] = 'dummy';
            $_ENV['SLACK_CLIENT_ID'] = 'dummy';
        }
        if (empty($_ENV['REDIS_URL'])) {
            $_ENV['REDIS_URL'] = 'redis://localhost:6379';
        }
        // Slack application credentials
        $c->setParameter('slack.client_secret', $_ENV['SLACK_CLIENT_SECRET']);
        $c->setParameter('slack.client_id', $_ENV['SLACK_CLIENT_ID']);
        $controller = $c->register('santa.controller', SantaController::class);
        $controller->setAutowired(true);
        $controller->addArgument(new Parameter('slack.client_id'));
        $controller->addArgument(new Parameter('slack.client_secret'));
        $sessionHandler = $c->register('session.handler.predis', Handler::class);
        $sessionHandler->setPublic(false);
        $sessionHandler->setAutowired(true);
        $predis = $c->register('predis', Client::class);
        $predis->setPublic(false);
        $predis->addArgument($_ENV['REDIS_URL']);
    }