/** * Конструктор */ function __construct() { parent::__construct(); if (DEBUG) { Open_Benchmark::getInstance()->mark(__CLASS__ . '_start'); } /** * Создаём объект Smarty */ $this->smarty = new Open_Smarty(); /** * Передаём Smarty ссылки на экземпляры объектов, для удобства их использования изнутри * Использовать функцию Smarty assign_by_ref не надо, т.к. мы и так имеем дело со ссылками на объекты, иначе получится двойная ссылка */ $C = Open_Config::getInstance(); $this->smarty->assign('config', $C); $this->smarty->assign('input', Open_Input::getInstance()); $this->smarty->assign('router', Open_Router::getInstance()); $this->smarty->assign('text', Open_Text::getInstance()); $this->smarty->assign('view', $this); /** * Устанавливаем значения по умолчанию */ $config = $C->get(array('headers', 'default_title', 'js', 'css', 'default_body')); $this->setHeaders($config['headers']); $this->setTitle($config['default_title']); $this->setJs($config['js']); $this->setCss($config['css']); $this->setBody($config['default_body']); }
/** * Конструктор */ protected function __construct() { parent::__construct(); if (DEBUG) { Open_Benchmark::getInstance()->mark(__CLASS__ . '_start'); } $this->config = Open_Config::getInstance(); $this->input = Open_Input::getInstance(); $this->router = Open_Router::getInstance(); $this->text = Open_Text::getInstance(); $this->view = Open_View::getInstance(); $this->setArguments($this->router->getArguments()); }
set_error_handler('errorHandler'); /** * Отключаем добавление кавычек входным данным на лету * Во избежание ситуаций, когда кавычки могут добавиться дважды мы будем делать это всегда самостоятельно * К тому же использование этой возможности объявлено нежелательным и будет исключено из PHP6 */ set_magic_quotes_runtime(0); try { /** * Если режим дебага, создаём объект для работы с метками времени * При уничтожении объекта он выведет сколько времени отработало приложение */ if (DEBUG) { Open_Benchmark::getInstance(); } /** * Объект маршрутизации * Все действия выполняются в конструкторе, поэтому нам необходимо просто создать объект * Определяются язык, локаль и устанавливаются * Определяются контроллер и метод * Вызов метода контроллера */ Open_Router::getInstance()->invoke(); } catch (Exception $E) { $R = new ReflectionObject($E); if ($R->hasMethod('handle')) { $E->handle(); } else { p($E->__toString()); } }