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


PHP __hack_action函数代码示例

本文整理汇总了PHP中__hack_action函数的典型用法代码示例。如果您正苦于以下问题:PHP __hack_action函数的具体用法?PHP __hack_action怎么用?PHP __hack_action使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


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

示例1: __call

 /**
 +----------------------------------------------------------
 * 魔术方法 有不存在的操作的时候执行
 +----------------------------------------------------------
 * @access public
 +----------------------------------------------------------
 * @param string $method 方法名
 * @param array $args 参数
 +----------------------------------------------------------
 * @return mixed
 +----------------------------------------------------------
 */
 public function __call($method, $args)
 {
     if (0 === strcasecmp($method, ACTION_NAME)) {
         if (method_exists($this, '_empty')) {
             // 如果定义了_empty操作 则调用
             $this->_empty($method, $args);
         } elseif (file_exists_case(C('TEMPLATE_NAME'))) {
             // 检查是否存在默认模版 如果有直接输出模版
             $this->display();
         } elseif (function_exists('__hack_action')) {
             // hack 方式定义扩展操作
             __hack_action();
         } elseif (APP_DEBUG) {
             // 抛出异常
             throw_exception(L('_ERROR_ACTION_') . ACTION_NAME);
         } else {
             if (C('LOG_EXCEPTION_RECORD')) {
                 Log::write(L('_ERROR_ACTION_') . ACTION_NAME);
             }
             send_http_status(404);
             exit;
         }
     } else {
         switch (strtolower($method)) {
             // 判断提交方式
             case 'ispost':
             case 'isget':
             case 'ishead':
             case 'isdelete':
             case 'isput':
                 return strtolower($_SERVER['REQUEST_METHOD']) == strtolower(substr($method, 2));
                 // 获取变量 支持过滤和默认值 调用方式 $this->_post($key,$filter,$default);
             // 获取变量 支持过滤和默认值 调用方式 $this->_post($key,$filter,$default);
             case '_get':
                 $input =& $_GET;
                 break;
             case '_post':
                 $input =& $_POST;
                 break;
             case '_put':
                 parse_str(file_get_contents('php://input'), $input);
                 break;
             case '_request':
                 $input =& $_REQUEST;
                 break;
             case '_session':
                 $input =& $_SESSION;
                 break;
             case '_cookie':
                 $input =& $_COOKIE;
                 break;
             case '_server':
                 $input =& $_SERVER;
                 break;
             case '_globals':
                 $input =& $GLOBALS;
                 break;
             default:
                 throw_exception(__CLASS__ . ':' . $method . L('_METHOD_NOT_EXIST_'));
         }
         if (isset($input[$args[0]])) {
             // 取值操作
             $data = $input[$args[0]];
             $fun = $args[1] ? $args[1] : C('DEFAULT_FILTER');
             $data = $fun($data);
             // 参数过滤
         } else {
             // 变量默认值
             $data = isset($args[2]) ? $args[2] : NULL;
         }
         return $data;
     }
 }
开发者ID:yunsite,项目名称:nuomituan,代码行数:85,代码来源:Action.class.php

示例2: __call

 /**
  * 魔术方法 有不存在的操作的时候执行
  * @access public
  * @param string $method 方法名
  * @param array $args 参数
  * @return mixed
  */
 public function __call($method, $args)
 {
     if (0 === strcasecmp($method, ACTION_NAME . C('ACTION_SUFFIX'))) {
         if (method_exists($this, '_empty')) {
             // 如果定义了_empty操作 则调用
             $this->_empty($method, $args);
         } elseif (file_exists_case(C('TEMPLATE_NAME'))) {
             // 检查是否存在默认模版 如果有直接输出模版
             $this->display();
         } elseif (function_exists('__hack_action')) {
             // hack 方式定义扩展操作
             __hack_action();
         } else {
             _404(L('_ERROR_ACTION_') . ':' . ACTION_NAME);
         }
     } else {
         switch (strtolower($method)) {
             // 判断提交方式
             case 'ispost':
             case 'isget':
             case 'ishead':
             case 'isdelete':
             case 'isput':
                 return strtolower($_SERVER['REQUEST_METHOD']) == strtolower(substr($method, 2));
                 // 获取变量 支持过滤和默认值 调用方式 $this->_post($key,$filter,$default);
             // 获取变量 支持过滤和默认值 调用方式 $this->_post($key,$filter,$default);
             case '_get':
                 $input =& $_GET;
                 break;
             case '_post':
                 $input =& $_POST;
                 break;
             case '_put':
                 parse_str(file_get_contents('php://input'), $input);
                 break;
             case '_param':
                 switch ($_SERVER['REQUEST_METHOD']) {
                     case 'POST':
                         $input = $_POST;
                         break;
                     case 'PUT':
                         parse_str(file_get_contents('php://input'), $input);
                         break;
                     default:
                         $input = $_GET;
                 }
                 if (C('VAR_URL_PARAMS')) {
                     $params = $_GET[C('VAR_URL_PARAMS')];
                     $input = array_merge($input, $params);
                 }
                 break;
             case '_request':
                 $input =& $_REQUEST;
                 break;
             case '_session':
                 $input =& $_SESSION;
                 break;
             case '_cookie':
                 $input =& $_COOKIE;
                 break;
             case '_server':
                 $input =& $_SERVER;
                 break;
             case '_globals':
                 $input =& $GLOBALS;
                 break;
             default:
                 throw_exception(__CLASS__ . ':' . $method . L('_METHOD_NOT_EXIST_'));
         }
         if (!isset($args[0])) {
             // 获取全局变量
             $data = $input;
             // 由VAR_FILTERS配置进行过滤
         } elseif (isset($input[$args[0]])) {
             // 取值操作
             $data = $input[$args[0]];
             $filters = isset($args[1]) ? $args[1] : C('DEFAULT_FILTER');
             if ($filters) {
                 // 2012/3/23 增加多方法过滤支持
                 $filters = explode(',', $filters);
                 foreach ($filters as $filter) {
                     if (function_exists($filter)) {
                         $data = is_array($data) ? array_map($filter, $data) : $filter($data);
                         // 参数过滤
                     }
                 }
             }
         } else {
             // 变量默认值
             $data = isset($args[2]) ? $args[2] : NULL;
         }
         return $data;
     }
//.........这里部分代码省略.........
开发者ID:sunyang3721,项目名称:tjd-timehr,代码行数:101,代码来源:Action.class.php

示例3: __call

 public function __call($method, $args)
 {
     if (0 === strcasecmp($method, ACTION_NAME . C('ACTION_SUFFIX'))) {
         if (method_exists($this, '_empty')) {
             $this->_empty($method, $args);
         } elseif (file_exists_case($this->view->parseTemplate())) {
             $this->display();
         } elseif (function_exists('__hack_action')) {
             __hack_action();
         } else {
             _404(L('_ERROR_ACTION_') . ':' . ACTION_NAME);
         }
     } else {
         switch (strtolower($method)) {
             case 'ispost':
             case 'isget':
             case 'ishead':
             case 'isdelete':
             case 'isput':
                 return strtolower($_SERVER['REQUEST_METHOD']) == strtolower(substr($method, 2));
             case '_get':
                 $input =& $_GET;
                 break;
             case '_post':
                 $input =& $_POST;
                 break;
             case '_put':
                 parse_str(file_get_contents('php://input'), $input);
                 break;
             case '_param':
                 switch ($_SERVER['REQUEST_METHOD']) {
                     case 'POST':
                         $input = $_POST;
                         break;
                     case 'PUT':
                         parse_str(file_get_contents('php://input'), $input);
                         break;
                     default:
                         $input = $_GET;
                 }
                 if (C('VAR_URL_PARAMS') && isset($_GET[C('VAR_URL_PARAMS')])) {
                     $input = array_merge($input, $_GET[C('VAR_URL_PARAMS')]);
                 }
                 break;
             case '_request':
                 $input =& $_REQUEST;
                 break;
             case '_session':
                 $input =& $_SESSION;
                 break;
             case '_cookie':
                 $input =& $_COOKIE;
                 break;
             case '_server':
                 $input =& $_SERVER;
                 break;
             case '_globals':
                 $input =& $GLOBALS;
                 break;
             default:
                 throw_exception(__CLASS__ . ':' . $method . L('_METHOD_NOT_EXIST_'));
         }
         if (!isset($args[0])) {
             $data = $input;
         } elseif (isset($input[$args[0]])) {
             $data = $input[$args[0]];
             $filters = isset($args[1]) ? $args[1] : C('DEFAULT_FILTER');
             if ($filters) {
                 $filters = explode(',', $filters);
                 foreach ($filters as $filter) {
                     if (function_exists($filter)) {
                         $data = is_array($data) ? array_map($filter, $data) : $filter($data);
                     }
                 }
             }
         } else {
             $data = isset($args[2]) ? $args[2] : NULL;
         }
         Log::record('建议使用I方法替代' . $method, Log::NOTICE);
         return $data;
     }
 }
开发者ID:JMingZI,项目名称:thinkphp_blog,代码行数:82,代码来源:~runtime.php

示例4: __call

 /**
  * Magic Methods There does not exist when the operation performed
  * @access public
  * @param string $method Method name
  * @param array $args Parameter
  * @return mixed
  */
 public function __call($method, $args)
 {
     if (0 === strcasecmp($method, ACTION_NAME . C('ACTION_SUFFIX'))) {
         if (method_exists($this, '_empty')) {
             // If you define _empty operation the call
             $this->_empty($method, $args);
         } elseif (file_exists_case(C('TEMPLATE_NAME'))) {
             // Check if there is a default template If there is a direct output template
             $this->display();
         } elseif (function_exists('__hack_action')) {
             // hack Define the extended operation
             __hack_action();
         } else {
             _404(L('_ERROR_ACTION_') . ':' . ACTION_NAME);
         }
     } else {
         switch (strtolower($method)) {
             // Judgment submission
             case 'ispost':
             case 'isget':
             case 'ishead':
             case 'isdelete':
             case 'isput':
                 return strtolower($_SERVER['REQUEST_METHOD']) == strtolower(substr($method, 2));
                 // Get Variables Support filtering and default values Invocation $this->_post($key,$filter,$default);
             // Get Variables Support filtering and default values Invocation $this->_post($key,$filter,$default);
             case '_get':
                 $input =& $_GET;
                 break;
             case '_post':
                 $input =& $_POST;
                 break;
             case '_put':
                 parse_str(file_get_contents('php://input'), $input);
                 break;
             case '_param':
                 switch ($_SERVER['REQUEST_METHOD']) {
                     case 'POST':
                         $input = $_POST;
                         break;
                     case 'PUT':
                         parse_str(file_get_contents('php://input'), $input);
                         break;
                     default:
                         $input = $_GET;
                 }
                 if (C('VAR_URL_PARAMS')) {
                     $params = $_GET[C('VAR_URL_PARAMS')];
                     $input = array_merge($input, $params);
                 }
                 break;
             case '_request':
                 $input =& $_REQUEST;
                 break;
             case '_session':
                 $input =& $_SESSION;
                 break;
             case '_cookie':
                 $input =& $_COOKIE;
                 break;
             case '_server':
                 $input =& $_SERVER;
                 break;
             case '_globals':
                 $input =& $GLOBALS;
                 break;
             default:
                 throw_exception(__CLASS__ . ':' . $method . L('_METHOD_NOT_EXIST_'));
         }
         if (!isset($args[0])) {
             // Access to global variables
             $data = $input;
             // Filtered by the VAR_FILTERS configuration
         } elseif (isset($input[$args[0]])) {
             // Value Operation
             $data = $input[$args[0]];
             $filters = isset($args[1]) ? $args[1] : C('DEFAULT_FILTER');
             if ($filters) {
                 // 2012/3/23 Increase the number of ways filtration Support
                 $filters = explode(',', $filters);
                 foreach ($filters as $filter) {
                     if (function_exists($filter)) {
                         $data = is_array($data) ? array_map($filter, $data) : $filter($data);
                         // Parameter filter
                     }
                 }
             }
         } else {
             // Variable Default
             $data = isset($args[2]) ? $args[2] : NULL;
         }
         return $data;
     }
//.........这里部分代码省略.........
开发者ID:davidpersson,项目名称:FrameworkBenchmarks,代码行数:101,代码来源:Action.class.php


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