3) && (self::$url[3])) { for ($index = 3; $index < count(self::$url); $index = $index + 2) { $paramName = self::$url[$index]; $paramValue = isset(self::$url[$index + 1]) && self::$url[$index + 1] ? self::$url[$index + 1] : NULL; self::$urlParams[$paramName] = $paramValue; } } } /** * Загружает класс контроллера. * @param string $controllerName */ private static function loadController($controllerName) { include_once 'controllers/' . strtolower($controllerName) . '.php'; } /** * Основной метод для запуска приложения. * @param array $config */ public static function run($config) { ob_start(); self::$config = is_array($config) ? $config : array(); self::parseUrl(); //var_dump(self::$controller, self::$action);die; if (self::getConfig('DB')) { try { $confDB = self::getConfig('DB'); self::$DB = new PDO('mysql:host=' . $confDB['host'] . ';dbname=' . $confDB['dbname'].';charset=utf8;', $confDB['user'], $confDB['password']); foreach (glob(App::getBasedir() . "models/*.php") as $filename) { include_once $filename; } } catch (PDOException $e) { echo $e->getMessage(); } } $controller = self::$controller; $action = self::$action; if (method_exists($controller, $action)) { $controller::$action(); } else { self::error404(); } } public static function error404() { header("HTTP/1.0 404 Not Found"); die('404'); } public static function redirect($url) { header("Location: " . $url); } /** * Возвращает директорию фреймворка /full/path/ground/ * @return type */ public static function getBasedir() { if (!self::$basedir) self::$basedir = dirname(__FILE__) . '/'; return self::$basedir; } /** * Возвращает значение параметра из конфига * @param string $paramName * @return multi */ public static function getConfig($paramName) { return isset(self::$config[$paramName]) ? self::$config[$paramName] : NULL; } /** * Устанавливает значение в конфиге * @param string $paramName * @param multi $paramValue * @return true */ public static function setConfig($paramName, $paramValue) { self::$config[$paramName] = $paramValue; return true; } /** * Возвращает значение параметра, переданного в URL * @param string $paramName * @return string */ public static function getParam($paramName) { return isset(self::$urlParams[$paramName]) ? self::$urlParams[$paramName] : NULL; } /** * Возвращает массив параметров, переданных в URL * @return array */ public static function getParams() { return self::$urlParams; } }