/** * 加载视图处理类并完成视图类的实例化 * * 注:本类方法为回调类方法。 * * @access protected * @return object */ protected function initView() { //当视图文件格式为PHP时,采用Widget自身的视图机制。即:非View Class的视图机制 if (VIEW_EXT == Configure::VIEW_EXT_PHP) { return null; } //分析视图类文件路径 $filePath = DOIT_ROOT . '/core/WidgetTemplate.php'; //加载视图处理类文件 Doit::loadFile($filePath); //实例化视图类 $viewObject = WidgetTemplate::getInstance(); $viewObject->widgetId = $this->_getWidgetName(); return $viewObject; }
/** * 加载视图处理类并完成视图类的实例化 * * 注:本类方法为回调类方法。通过在Controller Class的继承子类中重载本类方法,来实现自定义DoitPHP项目的视图机制的操作。 * * @access protected * @return object */ protected function initView() { //分析视图类文件路径 $filePath = DOIT_ROOT . '/core/' . (VIEW_EXT == Configure::VIEW_EXT_PHP ? 'View.php' : 'Template.php'); //加载视图处理类文件 Doit::loadFile($filePath); //返回视图实例化对象 return VIEW_EXT == Configure::VIEW_EXT_PHP ? View::getInstance() : Template::getInstance(); }
* * @example $controllerName = Doit::getControllerName(); * * @access public * @return string controller名称(字母全部小写) */ public static function getControllerName() { return strtolower(self::$_controller); } /** * 获取当前运行的Action名称 * * @example $actionName = Doit::getActionName(); * * @access public * @return string action名称(字母全部小写) */ public static function getActionName() { return self::$_action; } } /** * 自动加载引导文件的加载 */ Doit::loadFile(DOIT_ROOT . '/core/AutoLoad.php'); /** * 调用SPL扩展,注册__autoload()函数. */ spl_autoload_register(array('doitphp\\core\\AutoLoad', 'loadClass'));
/** * 加载并单例模式实例化扩展模块(通常为第三方程序) * * 注:这里所调用的扩展模声要放在项目extension目录里的子目录中 * * @access public * * @param string $extensionName 扩展插件名称 * * @access object */ public static final function loadExtension($extensionName) { //参数分析 if (!$extensionName) { return false; } //当所加载的扩展模块还示被实例化时 if (!isset(self::$_extensionObjArray[$extensionName])) { //加载扩展模块的引导文件(index) $extensionPath = self::_getExtRoot($extensionName) . DS . $extensionName . 'Ext.php'; Doit::loadFile($extensionPath); self::$_extensionObjArray[$extensionName] = Doit::singleton('extensions.' . $extensionName . 'Ext'); } return self::$_extensionObjArray[$extensionName]; }
/** * 加载自定义配置文件所引导的文件 * * @access private * * @param string $className 所需要加载的类的名称,注:不含后缀名 * * @return void */ private static function _loadImportConfigFile($className) { //定义自动加载状态。(true:已加载/false:未加载) $atuoLoadStatus = false; //分析配置文件import引导信息 $importRules = Configure::get('import'); //当配置文件引导信息合法时 if ($importRules && is_array($importRules)) { foreach ($importRules as $rules) { if (!$rules) { continue; } //当配置文件引导信息中含有*'时,将设置的规则中的*替换为所要加载的文件类名 if (strpos($rules, '*') !== false) { $filePath = str_replace('*', $className, $rules); } else { $filePath = $rules . DS . str_replace('_', DS, $className) . '.php'; } //当自定义自动加载的文件存在时 if (is_file($filePath)) { //加载文件 Doit::loadFile($filePath); $atuoLoadStatus = true; break; } } } return $atuoLoadStatus; }