public function execute() { $suffix = "Controller"; Router::parseUri(); try { $_cc = ucfirst(Router::getController()) . $suffix; Loader::autoload($_cc); if (!class_exists($_cc, false) && !interface_exists($_cc, false)) { throw new Exception('Class ' . $_cc . ' does not exist'); } $class = new ReflectionClass($_cc); if ($class->isAbstract()) { throw new Exception('Cannot create instances of abstract ' . $_cc . ''); } // Create a new instance of the controller $controller = $class->newInstance(); // Execute the "before action" method //$class->getMethod('before')->invoke($controller); // Execute the main action with the parameters $class->getMethod(Router::getAction() . 'Action')->invokeArgs($controller, Router::getParams()); // Execute the "after action" method //$class->getMethod('after')->invoke($controller); } catch (Exception $e) { throw $e; } return $this; }
/** * Cargador del paquete de libreria punkupattern * * @param String $class nombre de la clase a cargar * @return Boolean true si puedo cargar la clase. False de lo contrario. */ public static function modelApplicationImport($class) { return Loader::autoload(PATH_MODEL_APPLICATION_IMPORT, $class); }
setlocale(LC_ALL, 'en_US.utf8'); mb_internal_encoding("UTF-8"); chdir(ROOT_PATH); ob_start(); /** * Дополнительные функции ядра */ require ROOT_PATH . "/knee/function.php"; /** * Подключение загрузчика скриптов */ require ROOT_PATH . "/knee/loader.php"; /** * Автоматическая загрузка системных классов */ Loader::autoload(); /** * Регистрация функции планового завершения работы сессии */ register_shutdown_function(function () { Session::end(); }); /** * Регистрация функций управления незапланированым завершением работы скрипта */ Debug::register(); /** * Подключение слушателей событий */ Loader::path(ROOT_PATH . "/app/events.php"); /**
<?php require 'Loader.php'; $loader = new Loader(); $loader->add(dirname(__FILE__)); $loader->autoload(); $loader = null;
/** Autload items **/ public function autoload() { $ci = modules::$registry[$this->_class]; /* process application autoload */ if (!isset(self::$autoload) and self::$autoload = TRUE) { self::$loader->_ci_autoloader(); } /* controller autoload array */ $autoload = $ci->autoload() or $autoload = array(); list($path, $file) = modules::find('autoload', $this->_module, 'config/'); /* module autoload file */ if ($path != FALSE) { $autoload = array_merge(modules::load_file($file, $path, 'autoload'), $autoload); } /* nothing to do? */ if (count($autoload) == 0) { return; } /* autoload database & libraries */ if (isset($autoload['libraries'])) { if (in_array('database', $autoload['libraries'])) { /* autoload database */ if (!($db = $ci->config->item('database'))) { $db['params'] = 'default'; $db['active_record'] = TRUE; } $ci->db = $this->database($db['params'], TRUE, $db['active_record']); $autoload['libraries'] = array_diff($autoload['libraries'], array('database')); } /* autoload libraries */ foreach ($autoload['libraries'] as $library) { $this->library($library); } } /* autoload config */ if (isset($autoload['config'])) { foreach ($autoload['config'] as $key => $val) { $this->config($val, TRUE); } } /* autoload helpers, plugins, scripts, languages */ foreach (array('helper', 'plugin', 'script', 'language') as $type) { if (isset($autoload[$type])) { foreach ($autoload[$type] as $item) { $this->{$type}($item); } } } /* autoload base classes */ if (isset($autoload['class'])) { foreach ($autoload['class'] as $class) { modules::autoload($class); } } /* autoload models */ if (isset($autoload['model'])) { foreach ($autoload['model'] as $model => $alias) { is_numeric($model) ? $this->model($alias) : $this->model($model, $alias); } } /* autoload module controllers */ if (isset($autoload['modules']) and !in_array($this->_class, $autoload['modules'])) { foreach ($autoload['modules'] as $module) { $this->module($module); } } }