Example #1
0
foreach ($_controllers as $controller) {
    $controllers[] = '\\App\\' . str_replace('.php', '', $controller);
}
foreach (Resolver::resolve($controllers) as $controller => $callback) {
    $container[$controller] = $callback;
}
// Templates
$container['view'] = function ($c) use($config) {
    $view = new Slim\Views\Twig($config['paths']['template'], []);
    $view->addExtension(new Slim\Views\TwigExtension($c['router'], $c['request']->getUri()));
    return $view;
};
// Logging
$container['log'] = function ($c) use($config) {
    $logger = new \Monolog\Logger('application');
    $logger->pushHandler(new \Monolog\Handler\StreamHandler($config['paths']['log'], \Monolog\Logger::DEBUG));
    $handler = $logger->getHandlers();
    $handler[0]->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, true));
    return $logger;
};
// Whoops
$container['errorHandler'] = function ($c) {
    return function ($request, $response, $exception) use($c) {
        $log = $c->get('log');
        $log->critical($exception->getMessage());
        $whoops = new \Whoops\Run();
        $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler());
        $whoops->register();
        return $c['response']->write($whoops->handleException($exception));
    };
};