getContainer(); // view renderer $container['view'] = function ($c) { $settings = $c->get('settings')['view']; return new Slim\Views\PhpRenderer($settings['template_path']); }; // MySQL $container['db'] = function ($c) { $db = $c->get('settings')['db']; $options = array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' ); $pdo = new PDO("mysql:host=" . $db['host'] . ";dbname=" . $db['dbname'], $db['user'], $db['pwd'], $options); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); return $pdo; }; // monolog $container['logger'] = function ($c) { $settings = $c->get('settings')['logger']; $logger = new \Monolog\Logger($settings['name']); $logger->pushProcessor(new \Monolog\Processor\UidProcessor()); $logger->pushHandler(new \Monolog\Handler\StreamHandler($settings['path'])); return $logger; }; $container['session'] = function(){ return new \SlimSession\Helper; }; $container['flash'] = function(){ return new Slim\Flash\Messages(); }; $container['errorHandler'] = function ($c) { return function ($request, $response) use ($c) { return $c['response'] ->withStatus(500) ->withHeader('Content-Type', 'text/html') ->write('Something went wrong!'); }; }; $container['notFoundHandler'] = function ($c) { return function ($request, $response) use ($c) { return $c['response'] ->withStatus(404) ->withHeader('Content-Type', 'text/html') ->write('Page not found'); }; };