标签:.com custom 功能 cep lin des after exists row
<?php /** * @name Service_Page_Test * @desc page层对接第三方抽象类 * @author */ abstract class Service_Page_Test { public $hookGroupPrev = null; // 前钩子组 public $hookGroupAfter = null; // 前钩子组 public $hookReturn = array(); //钩子返回值 public $reqData = null; // page模块分析的数据 /** * 获取需要验证的参数配置 * @return array */ public function _getCheckParams() { return array(); } /** * 入库方法 * @param array $arrInput * @return array */ public function execute($arrInput) { $res = array( ‘errno‘ => Test_Errno::ERRNO_SUCCESS, ‘errmsg‘ => Test_Errno::$ERRMSG[Test_Errno::ERRNO_SUCCESS], ); try { $this->_init($arrInput); $this->_beforeExecute(); $res = $this->doExecute($arrInput); $this->_afterExecute(); } catch (Test_Exception $e) { $res = array( ‘errno‘ => $e->getCode(), ‘errmsg‘ => $e->getMessage(), ); } catch (Exception $e) { $res = array( ‘errno‘ => $e->getCode(), ‘errmsg‘ => $e->getMessage(), ); } return $res; } /** * auto exec * @param array $arrInput * @throws Exception * @return array */ protected function doExecute($arrInput){ } /** * 获取权限信息 * @param array $arrInput * @return array */ public function _init($arrInput) { $pageModulesConf = Conf::getConf(‘page/‘ . get_class($this)); $this->hookGroupPrev[] = $pageModulesConf[‘hook_group‘][‘prev‘]; $this->hookGroupAfter[] = $pageModulesConf[‘hook_group‘][‘after‘]; } /** * 执行filter * @param string $filterName */ public function _beforeExecute() { if (!empty($this->hookGroupPrev) && is_array($this->hookGroupPrev)) { foreach ($this->hookGroupPrev as $hookGroups) { foreach ($hookGroups as $hookGroup) { $this->_executeHook($hookGroup, $this->reqData); } } } } /** * @param array $arrInput * @return array */ public function _afterExecute() { if (!empty($this->hookGroupAfter) && is_array($this->hookGroupAfter)) { foreach ($this->hookGroupAfter as $hookGroups) { foreach ($hookGroups as $hookGroup) { $this->_executeHook($hookGroup, $this->reqData); } } } } /** * 执行filter * @param string $filterName */ public function _executeHook($hookGroup, $reqData) { $hookGroupConf = Conf::getConf(‘hook/group/‘ . $hookGroup); if(!empty($hookGroupConf)){ foreach($hookGroupConf as $hook){ $hookConf = Conf::getConf(‘hook/hook/‘ . $hook); $class = $hookConf[‘class‘]; $method = $hookConf[‘method‘]; $inputParams = isset($hookConf[‘getInputParams‘]) ? $this->{$hookConf[‘getInputParams‘]}() : null; if (class_exists($class)) { $obj = new $class(); if (method_exists($obj, $method)) { $this->hookReturn[$hook][] = $obj->$method($inputParams, $reqData); } } } } } }
hook.conf
[group] [.check_req_customer] 0 : checkReqCustomerBaseInfo [.after_demo] 0 : afterDemo [hook] [.checkReqCustomerBaseInfo] class: Service_Page_Hook_Customer method: checkBaseInfo getInputParams: _getCheckParams [.afterDemo] class: Service_Page_Hook_Customer method: afterDemo getInputParams: _getCheckParams
[Service_Page_Input] [.hook_group] [..prev] 0 : check_req_customer [..after] 0 : after_demo
标签:.com custom 功能 cep lin des after exists row
原文地址:http://www.cnblogs.com/baochuan/p/6290504.html