li3_access\extensions\adapter\security\access\AuthRbac::parseMatch PHP Метод

parseMatch() публичный статический Метод

Can match against a shorthand string (Controller::action) or a full array. If a parameter is provided then it must have an equivilent in the Request objects parmeters in order to validate. * Is also acceptable to match a parameter without a specific value.
public static parseMatch ( mixed $match, mixed $params ) : boolean
$match mixed A set of parameters to validate the request against.
$params mixed The Lithium `Request` object, or an array with at least 'request', and 'params'
Результат boolean True if a match is found.
    public static function parseMatch($match, $params)
    {
        if (empty($match)) {
            return false;
        }
        if (is_array($match)) {
            $_params = $params;
            if (!static::_parseClosures($match, $params['request'], $_params)) {
                return false;
            }
        } elseif (is_callable($match)) {
            return (bool) $match($params['request'], $params);
        }
        $matchParams = array();
        foreach ((array) $match as $key => $param) {
            if (is_string($param)) {
                if (preg_match('/^([A-Za-z0-9_\\*\\\\]+)::([A-Za-z0-9_\\*]+)$/', $param, $regexMatches)) {
                    $matchParams += array('controller' => $regexMatches[1], 'action' => $regexMatches[2]);
                    continue;
                }
            }
            $matchParams[$key] = $param;
        }
        foreach ($matchParams as $type => $value) {
            if ($value === '*') {
                continue;
            }
            if ($type === 'controller') {
                $value = Inflector::underscore($value);
            }
            $exists_in_request = array_key_exists($type, $params['params']);
            if (!$exists_in_request || $value !== Inflector::underscore($params['params'][$type])) {
                return false;
            }
        }
        return true;
    }