当前位置: 首页>>代码示例>>PHP>>正文


PHP Action::EventShutdown方法代码示例

本文整理汇总了PHP中Action::EventShutdown方法的典型用法代码示例。如果您正苦于以下问题:PHP Action::EventShutdown方法的具体用法?PHP Action::EventShutdown怎么用?PHP Action::EventShutdown使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Action的用法示例。


在下文中一共展示了Action::EventShutdown方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: ExecAction

 /**
  * Запускает на выполнение экшен
  * Может запускаться рекурсивно если в одном экшене стоит переадресация на другой
  *
  */
 public function ExecAction()
 {
     $this->DefineActionClass();
     /**
      * Сначала запускаем инициализирующий евент
      */
     $this->Hook_Run('init_action');
     $sActionClass = $this->DefineActionClass();
     /**
      * Определяем наличие делегата экшена
      */
     if ($aChain = $this->Plugin_GetDelegationChain('action', $sActionClass)) {
         if (!empty($aChain)) {
             $sActionClass = $aChain[0];
         }
     }
     self::$sActionClass = $sActionClass;
     /**
      * Если класс экешна начинается с Plugin*_, значит необходимо загрузить объект из указанного плагина
      */
     if (!preg_match('/^Plugin([\\w]+)_Action([\\w]+)$/i', $sActionClass, $aMatches)) {
         require_once Config::Get('path.root.server') . '/classes/actions/' . $sActionClass . '.class.php';
     } else {
         require_once Config::Get('path.root.server') . '/plugins/' . strtolower($aMatches[1]) . '/classes/actions/Action' . ucfirst($aMatches[2]) . '.class.php';
     }
     $sClassName = $sActionClass;
     $this->oAction = new $sClassName($this->oEngine, self::$sAction);
     /**
      * Инициализируем экшен
      */
     $this->Hook_Run("action_init_" . strtolower($sActionClass) . "_before");
     $sInitResult = $this->oAction->Init();
     $this->Hook_Run("action_init_" . strtolower($sActionClass) . "_after");
     if ($sInitResult === 'next') {
         $this->ExecAction();
     } else {
         /**
          * Замеряем время работы action`а
          */
         $oProfiler = ProfilerSimple::getInstance();
         $iTimeId = $oProfiler->Start('ExecAction', self::$sAction);
         $res = $this->oAction->ExecEvent();
         self::$sActionEventName = $this->oAction->GetCurrentEventName();
         $this->Hook_Run("action_shutdown_" . strtolower($sActionClass) . "_before");
         $this->oAction->EventShutdown();
         $this->Hook_Run("action_shutdown_" . strtolower($sActionClass) . "_after");
         $oProfiler->Stop($iTimeId);
         if ($res === 'next') {
             $this->ExecAction();
         }
     }
 }
开发者ID:lunavod,项目名称:bunker_stable,代码行数:57,代码来源:Router.class.php

示例2: ExecAction

 /**
  * Запускает на выполнение экшен
  * Может запускаться рекурсивно если в одном экшене стоит переадресация на другой
  *
  */
 public function ExecAction()
 {
     $this->DefineActionClass();
     /**
      * Сначала запускаем инициализирующий евент
      */
     $this->Hook_Run('init_action');
     $sActionClass = $this->DefineActionClass();
     /**
      * Определяем наличие делегата экшена
      */
     if ($aChain = $this->Plugin_GetDelegationChain('action', $sActionClass)) {
         if (!empty($aChain)) {
             $sActionClass = $aChain[0];
         }
     }
     self::$sActionClass = $sActionClass;
     $sClassName = $sActionClass;
     $this->oAction = new $sClassName(self::$sAction);
     /**
      * Инициализируем экшен
      */
     $this->Hook_Run("action_init_" . strtolower($sActionClass) . "_before");
     $sInitResult = $this->oAction->Init();
     $this->Hook_Run("action_init_" . strtolower($sActionClass) . "_after");
     if ($sInitResult === 'next') {
         $this->ExecAction();
     } else {
         $mRes = $this->oAction->ExecEvent();
         self::$sActionEventName = $this->oAction->GetCurrentEventName();
         $this->Hook_Run("action_shutdown_" . strtolower($sActionClass) . "_before");
         $this->oAction->EventShutdown();
         $this->Hook_Run("action_shutdown_" . strtolower($sActionClass) . "_after");
         if ($mRes === 'next') {
             $this->ExecAction();
         }
     }
 }
开发者ID:vgrish,项目名称:livestreet-framework,代码行数:43,代码来源:Router.class.php

示例3: ExecAction

 /**
  * Запускает на выполнение экшен
  * Может запускаться рекурсивно если в одном экшене стоит переадресация на другой
  *
  */
 public function ExecAction()
 {
     $this->DefineActionClass();
     // Hook before action
     E::ModuleHook()->Run('action_before');
     $sActionClass = $this->DefineActionClass();
     // * Определяем наличие делегата экшена
     if ($aChain = E::ModulePlugin()->GetDelegationChain('action', $sActionClass)) {
         if (!empty($aChain)) {
             $sActionClass = $aChain[0];
         }
     }
     static::$sActionClass = $sActionClass;
     if (!class_exists($sActionClass)) {
         throw new Exception('Cannot load class "' . $sActionClass . '"');
     }
     $this->oAction = new $sActionClass(static::$sAction);
     // * Инициализируем экшен
     $sInitResult = $this->oAction->Init();
     if ($sInitResult === 'next') {
         $this->ExecAction();
     } else {
         // Если инициализация экшена прошла успешно и метод провеки доступа вернул
         // положительный результат то запускаем запрошенный ивент на исполнение.
         if ($sInitResult !== false && $this->oAction->Access(self::GetActionEvent()) !== false) {
             $res = $this->oAction->ExecEvent();
             static::$sActionEventName = $this->oAction->GetCurrentEventName();
             $this->oAction->EventShutdown();
             if ($res === 'next') {
                 $this->ExecAction();
             }
         } else {
             if (!F::AjaxRequest()) {
                 static::$sAction = $this->aConfigRoute['config']['action_not_found'];
                 static::$sActionEvent = '404';
                 $this->ExecAction();
             }
         }
     }
     // Hook after action
     E::ModuleHook()->Run('action_after');
 }
开发者ID:hard990,项目名称:altocms,代码行数:47,代码来源:Router.class.php

示例4: ExecAction

 /**
  * Запускает на выполнение экшен
  * Может запускаться рекурсивно если в одном экшене стоит переадресация на другой
  *
  */
 public function ExecAction()
 {
     $this->DefineActionClass();
     // Hook before action
     E::ModuleHook()->Run('action_before');
     $sActionClass = $this->DefineActionClass();
     // * Определяем наличие делегата экшена
     if ($aChain = E::ModulePlugin()->GetDelegationChain('action', $sActionClass)) {
         if (!empty($aChain)) {
             $sActionClass = $aChain[0];
         }
     }
     static::$sActionClass = $sActionClass;
     if (!class_exists($sActionClass)) {
         throw new Exception('Cannot load class "' . $sActionClass . '"');
     }
     $this->oAction = new $sActionClass(static::$sAction);
     // * Инициализируем экшен
     $sInitResult = $this->oAction->Init();
     if ($sInitResult === 'next') {
         $this->ExecAction();
     } else {
         // Если инициализация экшена прошла успешно,
         // то запускаем запрошенный ивент на исполнение.
         if ($sInitResult !== false) {
             $xEventResult = $this->oAction->ExecEvent();
             static::$sActionEventName = $this->oAction->GetCurrentEventName();
             $this->oAction->EventShutdown();
             if ($xEventResult === 'next') {
                 $this->ExecAction();
             }
         }
     }
     // Hook after action
     E::ModuleHook()->Run('action_after');
 }
开发者ID:anp135,项目名称:altocms,代码行数:41,代码来源:Router.class.php


注:本文中的Action::EventShutdown方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。