/** * Запускает движок системы. * * @return array массив с результатами содержащий: * -тип файла, который надо открыть * -данные для этого файла * -вид */ public function run() { $data = null; $view = null; $variables = null; // Если найден контролер. if ($controller = $this->getController()) { MG::set('controller', $controller); $contr = new $controller(); $type = 'view'; $variables = $contr->variables; $view = $this->getView(); } elseif ($data = MG::getPhpContent()) { // отключаем вывод шаблона для пользовательских скриптов MG::disableTemplate(); // Если найден пользовательский файл, возвращает его расширение (php||html). $ext = explode(".", $data); $type = end($ext); // если запрошен существуюий файл стилей или js или любое другое расширение кроме html и php, // то редиректрим на его настоящее местоположение минуя проверки движка if ($type != 'php' && $type != 'html') { MG::redirect('/' . $data); exit; } if ($type != 'php') { // если файл не исполняемый то считываем его в строку $data = file_get_contents($data); $type = 'html'; } } elseif ($data = MG::getHtmlContent()) { // Если найден статический контент в БД. $type = 'html'; } // Если не существует запрашиваемых данных. $type = !empty($type) ? $type : '404'; $result = array('type' => $type, 'data' => $data, 'view' => $view, 'variables' => $variables); return $result; }