lithium\net\http\Route::_matchKeys PHP Method

_matchKeys() protected method

A helper method used by match() to verify that options required to match this route are present in a URL array.
See also: lithium\net\http\Route::match()
protected _matchKeys ( array $options ) : mixed
$options array An array of URL parameters.
return mixed On success, returns an updated array of options, merged with defaults. On failure, returns `false`.
    protected function _matchKeys($options)
    {
        $args = array('args' => 'args');
        $scope = array();
        if (!empty($options['scope'])) {
            $scope = (array) $options['scope'] + array('params' => array());
            $scope = array_flip($scope['params']);
        }
        unset($options['scope']);
        if (array_intersect_key($options, $this->_match) != $this->_match) {
            return false;
        }
        if ($this->_config['continue']) {
            if (array_intersect_key($this->_keys, $options + $args) != $this->_keys) {
                return false;
            }
        } else {
            if (array_diff_key($options, $this->_match + $this->_keys + $scope)) {
                return false;
            }
        }
        $options += $this->_defaults;
        $base = $this->_keys + $args;
        $match = array_intersect_key($this->_keys, $options) + $args;
        sort($base);
        sort($match);
        if ($base !== $match) {
            return false;
        }
        return $options;
    }