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']);
}