public static function instance() { if (self::$instance === null) { self::$instance = new self(); } return self::$instance; }
public static function instance($tagsArray = array(), $attrArray = array(), $tagsMethod = 0, $attrMethod = 0, $xssAuto = 1) { !JDEBUG ?: joosDebug::inc('joosInputFilter::instance'); if (self::$instance === null) { self::$instance = new self($tagsArray, $attrArray, $tagsMethod, $attrMethod, $xssAuto); } return self::$instance; }
/** * Получение инстанции для работы с базой данных * @return joosDatabaseMysqli - объект базы данных */ public static function instance() { // отметка получения инстенции базы данных JDEBUG ? joosDebug::inc('joosDatabaseMysqli::instance()') : null; if (self::$instance === NULL) { $db_config = joosConfig::get('db'); $database = new self($db_config['host'], $db_config['user'], $db_config['password'], $db_config['name']); if ($database->_error_num) { $error_message = $database->_error_msg; joosPages::error_database($error_message); } self::$instance = $database; } return self::$instance; }
public static function show_debug() { // вывод лога отладки // подсчет израсходованной памяти if (defined('JOOS_MEMORY_START')) { $mem_usage = memory_get_usage() - JOOS_MEMORY_START; $mem_usage = joosFile::convert_size($mem_usage); } else { $mem_usage = 'Недоступно'; } // подсчет времени генерации страницы joosDebug::add_top(round(microtime(true) - JOOS_START, 5)); joosDebug::add_top($mem_usage); // вывод итогового лога отлатчика joosDebug::get(); }
public static function dispatch_ajax() { $id = joosRequest::int('id', 0); $page = joosRequest::int('page', false, $_GET); $page = $page ? $page : 0; $id = $id ? $id : $page; $task = joosRequest::param('task', 'index'); $option = joosRequest::param('option'); $class = 'actionsAjaxAdmin' . ucfirst($option); JDEBUG ? joosDebug::add($class . '::' . $task) : null; // в контроллере можно прописать общие действия необходимые при любых действиях контроллера - они будут вызваны первыми, например подклбчение можделей, скриптов и т.д. method_exists($class, 'action_before') ? call_user_func_array($class . '::action_before', array()) : null; $events_name = sprintf('ajax.controller.admin.*'); joosEvents::has_events($events_name) ? joosEvents::fire_events($events_name, $class, $task) : null; $events_name = sprintf('ajax.controller.admin.%s.*', $class); joosEvents::has_events($events_name) ? joosEvents::fire_events($events_name, $task) : null; $events_name = sprintf('ajax.controller.admin.%s.%s', $class, $task); joosEvents::has_events($events_name) ? joosEvents::fire_events($events_name) : null; if (method_exists($class, $task)) { $result = call_user_func_array($class . '::' . $task, array($option, $id, $page, $task)); } else { $result = call_user_func_array($class . '::index', array($option, $id, $page, $task)); } // контроллер может содержать метод вызываемый после окончания работы основного контроллера, но тоже вызовется method_exists($class, 'action_after') ? call_user_func_array($class . '::action_after', array($task, $result)) : null; if (is_array($result)) { echo json_encode($result); } elseif (is_string($result)) { echo $result; } }
/** * Проверка наличия созданных задач на событие * * @param string $events_name название обытия * * @return bool результат наличия событий */ public static function has_events($event_name) { joosDebug::log('Проверка наличия событий :event_name', array(':event_name' => $event_name)); return isset(self::$events[$event_name]) && count(self::$events[$event_name]) > 0; }
// стартуем пользователя joosCoreAdmin::init_user(); if (helperAcl::is_allowed('admin_panel::init') !== true) { joosRoute::redirect(JPATH_SITE_ADMIN, 'В доступе отказано'); } ob_start(); joosAutoadmin::dispatch(); joosDocument::set_body(ob_get_clean()); ob_start(); // начало вывода html // загрузка файла шаблона $template_file = JPATH_BASE . DS . 'app' . DS . 'templates' . DS . JTEMPLATE_ADMIN . DS . 'index.php'; if (file_exists($template_file)) { require_once $template_file; } else { throw new joosException('Файл index.php шаблона :template_name не найден', array(':template_name' => JTEMPLATE_ADMIN)); } // подсчет времени генерации страницы if (JDEBUG) { if (defined('_MEM_USAGE_START')) { $mem_usage = joosFile::convert_size(memory_get_usage() - _MEM_USAGE_START); } else { $mem_usage = 'недоступно'; } // подсчет времени генерации страницы joosDebug::add_top(round(microtime(true) - $sysstart, 5)); joosDebug::add_top($mem_usage); // информация отладки, число запросов в БД joosDebug::get(); } ob_end_flush();
/** * Убрать, заменить везде и использовать как joosDebug::dump($var); * @deprecated */ function _xdump($var) { joosDebug::dump($var); }