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


PHP WindUtility::resolveExpression方法代码示例

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


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

示例1: resolveActionHook

 /**
  * 获得指定扩展点的全部扩展调用
  * 
  * 过滤当前挂在的所有{@see $filters},根据filter的表达式定义过滤当前需要被执行的所有filter,
  * 并返回.该方法在{@see PwBaseController::runHook}中被使用.当前表达式参数解析支持,
  * <i>request,service(PwBaseHookService)</i>{@example <code>
  * 例如: 'expression' => 'special.get==1'
  * 则该该方法会去判断request,get请求中的special的值是否等于1,
  * 如果为true则注册该过滤器,如果为false则不注册该过滤器,当expression不定义时,
  * 则认为在任何条件下都注册该过滤器.
  * </code>}
  * @param array $filters
  * @param PwBaseHookService $service
  * @return array
  */
 public static function resolveActionHook($filters, $service = null)
 {
     $_filters = array();
     foreach ((array) $filters as $filter) {
         if (empty($filter['class'])) {
             continue;
         }
         if (!is_file(Wind::getRealPath($filter['class']))) {
             continue;
         }
         if (!empty($filter['expression'])) {
             $v1 = '';
             list($n, $p, $o, $v2) = WindUtility::resolveExpression($filter['expression']);
             switch (strtolower($n)) {
                 case 'service':
                     $call = array($service, 'getAttribute');
                     break;
                 case 'config':
                     $call = 'PwHook::_getConfig';
                     break;
                 default:
                     $call = 'PwHook::_getRequest';
                     break;
             }
             $v1 = call_user_func_array($call, explode('.', $p));
             if (!WindUtility::evalExpression($v1, $v2, $o)) {
                 continue;
             }
         }
         $_filters[] = $filter;
     }
     return $_filters;
 }
开发者ID:fanqimeng,项目名称:4tweb,代码行数:48,代码来源:PwHook.php


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