本文整理匯總了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;
}