public static function getInstance($className = null) { if (!$className) { $className = get_called_class(); } if (!isset(self::$objInstances[$className])) { $instance = new ReflectionClass($className); $instance->getConstructor(); self::$objInstances[$className] = $instance->newInstance(); //регистрируем в реестре xRegistry::set($className, self::$objInstances[$className]); } return self::$objInstances[$className]; }
public static function moduleFactory($modulename) { global $_PATH; $xRegCheck = explode('.', $modulename); $xRegName = $xRegCheck[0] . strtoupper($xRegCheck[1][0]) . substr($xRegCheck[1], 1); if (xRegistry::exists($xRegName)) { return xRegistry::get($xRegName); } $module = explode('.', $modulename); xCore::callCommonInstance($module[0]); //в случае xfront должен быть подключен модуль front if ($module[1] == 'xfront' && file_exists($inst = xConfig::get('PATH', 'MODULES') . $module[0] . '/' . $module[0] . '.front.class.php')) { require_once xConfig::get('PATH', 'MODULES') . $module[0] . '/' . $module[0] . '.front.class.php'; } if ($module[1] == 'cron') { xCore::moduleFactory($module[0] . '.back'); } $moduleInstancePath = xConfig::get('PATH', 'MODULES') . $module[0] . '/' . $module[0] . '.' . $module[1] . '.class.php'; require_once $moduleInstancePath; $module[1][0] = strtoupper($module[1][0]); //calling class if (class_exists($classname = $module[0] . $module[1])) { //все конструкторы класса без параметров xRegistry::get('EVM')->fire($modulename . ':beforeInit'); xRegistry::set($classname, $m = new $classname()); xRegistry::get('EVM')->fire($modulename . ':afterInit', array('instance' => $m)); xConfig::set('calledModules', $module[0], $m); //готовый класс return $m; } }
$_SESSION['user'] = 1; if (!isset($_SESSION['user'])) { if (!$_REQUEST['xoadCall']) { header('location: login.php'); } else { echo 'SESSION_TIME_EXPIRED'; die; } } require_once 'inc/core/helpers.php'; require_once 'conf/init.php'; require_once xConfig::get('PATH', 'CORE') . 'core.php'; require_once xConfig::get('PATH', 'CORE') . 'helpers.tpl.php'; xRegistry::set('TMS', $TMS = new tMultiSection()); xPDO::setSource(DB_HOST, DB_NAME, DB_USER, DB_PASS); xRegistry::set('xPDO', xPDO::getInstance()); xNameSpaceHolder::addObjectToNS('E', new ENHANCE()); require_once xConfig::get('PATH', 'XOAD') . 'xoad.php'; require_once xConfig::get('PATH', 'ADM') . 'logger.class.php'; require_once xConfig::get('PATH', 'ADM') . 'adm.class.php'; if ($_REQUEST['xoadCall']) { ob_start(); $adm = new adminPanel(); $adm->startMapping(); if (XOAD_Server::runServer()) { $all = ob_get_contents(); ob_end_clean(); if ($_COMMON_SITE_CONF['output_html_compress']) { Common::compress_output($all); } echo $all;
$connector = new connector(); @ob_end_clean(); ob_start(); if (XOAD_Server::runServer()) { if ($all = ob_get_contents()) { @ob_end_clean(); if (xConfig::get('GLOBAL', 'output_html_compress')) { echo Common::compress_output($all); } else { echo $all; } } exit; } } else { xRegistry::set('TPA', $TPA = new tPageAgregator()); if (isset($_GET['action'])) { $TPA->dispatch_action($_GET['action']); } elseif ($page = $TPA->execute_page(xConfig::get('PATH', 'baseUrl'))) { if ($TPA->FED_MODE) { $xConnector = new Connector(); $xConnector_obj = XOAD_Client::register($xConnector, array('url' => '/admin.php')); $TMS->AddFileSection($_PATH['ADM'] . 'tpl/FED.html'); $TMS->AddMassReplace('FED', array('front_obj' => XOAD_Client::register(new front_api()), 'xConnector' => $xConnector_obj, 'xoad_header' => XOAD_Utilities::header($_WEBPATH['XOAD']))); $page = preg_replace(array('#<script[^>]*>.*?</script>#is'), array(''), $page); $page .= $TMS->parseSection('FED'); } $all = $page; if (xConfig::get('GLOBAL', 'enable_page_caching') && !$TPA->DisablePageCaching && !$TPA->FED_MODE) { $cache->toCache($all); }