/** * Returns true if the parameters match this route, false otherwise. * * @param mixed $params The parameters * @param array $context The context * * @return Boolean true if the parameters match this route, false otherwise. */ public function matchesParameters($params, $context = array()) { if (isset($params['sf_method'])) { // enforce the sf_method requirement if (!in_array(strtolower($params['sf_method']), $this->requirements['sf_method'])) { return false; } unset($params['sf_method']); } return parent::matchesParameters($params, $context); }
public function matchesParameters($params, $context = array()) { $culture = $this->getCulture($context); if (isset($this->requirements['sf_host_culture'])) { $sfHostCulture = $this->requirements['sf_host_culture']; if ($culture != $sfHostCulture) { return false; } } return parent::matchesParameters($params, $context); }
/** * Returns true if the parameters matches this route, false otherwise. * * @param mixed $params The parameters * @param array $context The context * * @return Boolean true if the parameters matches this route, false otherwise. */ public function matchesParameters($params, $context = array()) { if (isset($params['sf_method'])) { if (!isset($this->requirements['sf_method'])) { $this->requirements['sf_method'] = 'get'; } // enforce the sf_method requirement if ($this->requirements['sf_method'] != $params['sf_method']) { return false; } unset($params['sf_method']); } return parent::matchesParameters($params, $context); }
$route->setDefaultParameters(array('foo' => 'bar')); $t->is($route->matchesParameters(array()), true, '->matchesParameters() merges the routing default parameters with the provided parameters to match the route'); $route = new sfRoute('/:foo', array(), array('foo' => '\\d+')); $t->is($route->matchesParameters(array('foo' => 'bar')), false, '->matchesParameters() enforces requirements'); $route = new sfRoute('/:foo', array(), array('foo' => '\\d+')); $t->is($route->matchesParameters(array('foo' => 12)), true, '->matchesParameters() enforces requirements'); $route = new sfRoute('/', array('foo' => 'bar')); $t->is($route->matchesParameters(array('foo' => 'foobar')), false, '->matchesParameters() checks that there is no parameter that is not a pattern variable'); $route = new sfRoute('/', array('foo' => 'bar')); $t->is($route->matchesParameters(array('foo' => 'bar')), true, '->matchesParameters() can override a parameter that is not a pattern variable if the value is the same as the default one'); $route = new sfRoute('/:foo', array('bar' => 'foo')); $t->is($route->matchesParameters(array('foo' => 'bar', 'bar' => 'foo')), true, '->matchesParameters() can override a parameter that is not a pattern variable if the value is the same as the default one'); $route = new sfRoute('/:foo'); $t->is($route->matchesParameters(array('foo' => 'bar', 'bar' => 'foo')), true, '->generate() matches even if there are extra parameters'); $route = new sfRoute('/:foo', array(), array(), array('extra_parameters_as_query_string' => false)); $t->is($route->matchesParameters(array('foo' => 'bar', 'bar' => 'foo')), false, '->generate() does not match if there are extra parameters if extra_parameters_as_query_string is set to false'); // ->generate() $t->diag('->generate()'); $route = new sfRoute('/:foo'); $t->is($route->generate(array('foo' => 'bar')), '/bar', '->generate() generates a URL with the given parameters'); $route = new sfRoute('/:foo/:foobar'); $t->is($route->generate(array('foo' => 'bar', 'foobar' => 'barfoo')), '/bar/barfoo', '->generate() replaces longer variables first'); $route = new sfRoute('/:foo'); $t->is($route->generate(array('foo' => '')), '/', '->generate() generates a route if a variable is empty'); $t->is($route->generate(array('foo' => null)), '/', '->generate() generates a route if a variable is empty'); /* $route = new sfRoute('/:foo/bar'); try { $route->generate(array('foo' => '')); $t->fail('->generate() cannot generate a route if a variable is empty and mandatory');
/** * @see sfRoute */ public function matchesParameters($params, $context = array()) { return parent::matchesParameters($this->filterParams($params), $context); }