/** * * @copyright 2010-2015 izend.org * @version 4 * @link http://www.izend.org */ function session_reopen($name = false) { session_close(); session_open($name); }
function bootstrap() { global $base_url, $base_path, $base_root; global $db_url, $session_name, $login_lifetime; if (isset($_SERVER['HTTP_HOST'])) { $_SERVER['HTTP_HOST'] = strtolower($_SERVER['HTTP_HOST']); if (!validate_host_name($_SERVER['HTTP_HOST'])) { header('HTTP/1.1 400 Bad Request'); exit; } } else { $_SERVER['HTTP_HOST'] = ''; } unset_globals(); @(include 'settings.inc'); @(include 'config.inc'); @(include 'db.inc'); if ($db_url == 'mysql://*****:*****@localhost/databasename') { $db_url = false; } if ($db_url) { require_once 'pdo.php'; db_connect($db_url); } if ($base_url) { $base_url = trim($base_url, '/'); $url = parse_url($base_url); if (!isset($url['path'])) { $url['path'] = ''; } $base_path = $url['path']; $base_root = substr($base_url, 0, strlen($base_url) - strlen($base_path)); } else { $base_root = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https' : 'http'; $base_url = $base_root .= '://' . $_SERVER['HTTP_HOST']; if ($dir = trim(dirname($_SERVER['SCRIPT_NAME']), '\\,/')) { $base_path = '/' . $dir; $base_url .= $base_path; } else { $base_path = ''; } } if (!$session_name) { list(, $session_name) = explode('://', $base_url, 2); $session_name = 'izend@' . $session_name; if (ini_get('session.cookie_secure')) { $session_name .= 'SSL'; } } session_open(md5($session_name)); if (isset($_SESSION['user']['lasttime'])) { $now = time(); if ($now - $_SESSION['user']['lasttime'] > $login_lifetime) { unset($_SESSION['user']); } else { $_SESSION['user']['lasttime'] = $now; } } if (!empty($_SESSION['user']['timezone'])) { date_default_timezone_set($_SESSION['user']['timezone']); } }
Действие (Action) - функция-обработчик некоторого действия Фильтр - Filter (before/after) - функция, определяемая в контроллере, которая выполняется перед/после указанного действия. Выгода использования фильтра заключается в том, что можно вынести некоторый повторяющийся функционал в действиях (Actions) "за скобку" */ //error_reporting(0); // Отключение вывода ошибок require_once './config/consts.php'; // Подключение конфигураций require_once './config/data_base_connect.php'; // Подключение соединения с БД require_once LIB_PATH . '/file_helpers.php'; // Базовые функции-помощники работы с файлами require_files_from(LIB_PATH); // Загрузка всех базовых компонент session_open(); // Открыть сессию // ActiveRecord // DATABASE_HOST, DATABASE_USER, DATABASE_PASSWORD vendor('activerecord'); vendor('haml'); vendor('haml_jf_render'); ActiveRecord\Config::initialize(function ($cfg) { $cfg->set_model_directory(MODEL_PATH); // mysql://root:secret-word@site-name.com/joomla_db_name?charset=UTF8 $cfg->set_connections(array('development' => 'mysql://' . DATABASE_USER . ':' . DATABASE_PASSWORD . '@' . DATABASE_HOST . '/' . DATABASE_NAME . '?charset=UTF8')); }); $framework = new FrameWork(); // Создать новый объект класса FrameWork controller_execute($framework); // Выполнение действия контроллера на основе данных фреймворка