示例#1
0
 /**
  * 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);
 }
示例#2
0
 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);
 }
示例#4
0
$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);
 }