static function init() { if ($_SERVER[debug][report]) { profiler::add("Autoexec", "MySQL: Выполнение скриптов до подключения"); } self::$db = &self::$lang; self::$sh = &self::$shared; $_SERVER[mysql][lang][encoding] = $_SERVER[EncodingSQL]; self::$lang = new sql_PDO( SQL_CONNECTION_LANG, $_SERVER[mysql][lang] ); // self::$lang = new sql_PDO( // SQL_CONNECTION_LANG, // $_SERVER[mysql][lang] // ); if ($_SERVER[debug][report]) { profiler::add("Autoexec", "MySQL: Подключение языковой БД"); } // REVERSE self::$errors = &sql::$lang->_errors; self::$lastQuery = &sql::$lang->_lastQuery; }
/** * Отрработать вывод по шаблону * @param string $template * @return string */ public function fetch($template) { /* TODO: тут проблемы с отрисовкой, нужно наследовать шаблоны */ if ($_SERVER[debug][report]) { profiler::add("Выполнение", "{$this->name}: {$template} начало отрисовки"); } // найдем шаблон $obj = $this; while ($obj) { if (file_exists($obj->getViewDir() . '/' . $template)) { $templatedir = Output::getTemplateCompiler()->getTemplateDir(); Output::getTemplateCompiler()->setTemplateDir($obj->getViewDir()); $content = Output::fetch($template); Output::getTemplateCompiler()->setTemplateDir($templatedir); break; } $parentclass = get_parent_class($obj); if ($parentclass) { $obj = new $parentclass(); } else { $obj = false; } } if ($_SERVER[debug][report]) { profiler::add("Выполнение", "{$this->name}: {$template} конец отрисовки"); } return $content; }
// при правильном использовании namespace достаточно только (PSR-0 https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md) spl_autoload_register(); // а так придестя зарегить функцию вслед за дефолтной spl_autoload_register('Autoloader::loadPackages'); // сам класс 'Autoloader' описан по PSR-0 // очень внимательно файлы будут искаться в МАЛЕНЬКИМИ буквами autoloader.php - Это известный БАГ и скоро может быть пофиксен /* * Строки ниже есть в файле autoload * НО с использованием SPL приишлось вставить сюда потому, что * auttoload включался каждый раз, а теперь используется include_once */ if (!$_SERVER["debug"]["noCache"]["php"]) { if (!empty($_SESSION["cache"]) && is_array($_SESSION["cache"])) { require_once realpath($_SERVER['DOCUMENT_ROOT']) . cache::buildScript($_SESSION["cache"], 'php'); } } /* * пожалуй уберу строчку из файла autoload и поставлю включение сюда */ //include_once __DIR__ . '/_engine/autoload.php'; // инклудим автозагрузку модулей ob_get_clean(); /* * Делать хоть один инстанс нужно для включения скриптов в заголовки */ Lang::getInstance()->setLang('ru'); // перехватим ошибки if ($_SERVER[debug][report]) { console::getInstance(); //->out(print_r($_REQUEST, true)); profiler::add('Autoexec', 'Выполнение начальных установок'); }