Exemplo n.º 1
0
 /**
  * 加载视图处理类并完成视图类的实例化
  *
  * 注:本类方法为回调类方法。
  *
  * @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();
 }
Exemplo n.º 3
0
     *
     * @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];
 }
Exemplo n.º 5
0
 /**
  * 加载自定义配置文件所引导的文件
  *
  * @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;
 }