當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。