$container['controller'] = function ($c) { $route = $c['route']; $handler = $route->getHandler(); if (is_callable($handler)) { return $handler; } $parts = explode('@', $handler); return $c['controller_namespace'] . $parts[0]; }; $container['controller_namespace'] = function ($c) { return $c['app_namespace'] . 'controllers\\'; }; $container['controller_slug'] = function ($c) { $controller_class = basename($c['controller']); $controller_name = preg_replace('/.+(Controller)$/', '', $controller_class); return Stringy\StaticStringy::slugify($controller_name); }; $container['db'] = function ($c) { $db_config = (require $c['app_path'] . DIRECTORY_SEPARATOR . $c['config_folder'] . DIRECTORY_SEPARATOR . 'database.php'); if (isset($c['use_db'])) { $use_db = $c['use_db']; } else { $use_db = 'default'; } if (!array_key_exists($use_db, $db_config)) { throw new \RuntimeException("Database configuration preset '{$use_db}' does not exist"); } $config = $db_config[$use_db]; if (!isset($config)) { throw new \RuntimeException("Database is disabled."); }