/**
  * 应用启动运行的函数
  * 
  * @access public
  * @return mixed
  */
 public function run()
 {
     //实现对Application的扩展
     Tiny::$_iserror = true;
     $appExtension = ExtensionFactory::getFactory('appExtension');
     if ($appExtension !== null) {
         $appExtension->before();
         $this->doRequest();
         $appExtension->after();
     } else {
         $this->doRequest();
     }
     Tiny::$_iserror = false;
 }
 /**
  * 控制器运行时的方法
  * 
  * @access public
  * @return mixed
  */
 public function run()
 {
     if (Tiny::app()->checkToken('redirect')) {
         $data = Req::args();
         unset($data['con'], $data['act'], $data['tiny_token_redirect']);
         $this->setDatas($data);
     }
     $this->init();
     $id = Req::args('act');
     if ($id === null) {
         $id = $this->defaultAction;
     }
     //防止页面的循环调用
     if (!$this->module->popRequestStack($this->id . '@' . $id)) {
         $this->module->pushRequestStack($this->id . '@' . $id);
     } else {
         if ($this->module->popRequestStack($this->id . '@' . $id)) {
             throw new Exception("Can't repeat redirect to the same position, you action is {$this->id}.", E_USER_ERROR);
         }
     }
     $this->action = $this->createAction($id);
     //所有Controller处理的扩展处理
     $contExtensions = ExtensionFactory::getFactory('controllerExtension');
     if ($contExtensions !== null) {
         $contExtensions->before($this);
         if (!is_null($this->action)) {
             $this->action->run();
         }
         $contExtensions->after($this);
     } else {
         if (!is_null($this->action)) {
             $this->action->run();
         }
     }
 }
 /**
  * 设置配制信息
  * 
  * @access public
  * @param mixed $config
  * @return mixed
  */
 public static function setExtConfig($config)
 {
     if (is_array($config)) {
         self::$extConfig = $config;
     }
 }