[Routing] added a proper exception when a route pattern references the same variable more than once (closes #3344)
This commit is contained in:
parent
802fe644fb
commit
ec7fb0bdd6
@ -51,6 +51,11 @@ class RouteCompiler implements RouteCompilerInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
$tokens[] = array('variable', $match[0][0][0], $regexp, $var);
|
$tokens[] = array('variable', $match[0][0][0], $regexp, $var);
|
||||||
|
|
||||||
|
if (in_array($var, $variables)) {
|
||||||
|
throw new \LogicException(sprintf('Route pattern "%s" cannot reference variable name "%s" more than once.', $route->getPattern(), $var));
|
||||||
|
}
|
||||||
|
|
||||||
$variables[] = $var;
|
$variables[] = $var;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,4 +98,14 @@ class RouteCompilerTest extends \PHPUnit_Framework_TestCase
|
|||||||
)),
|
)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \LogicException
|
||||||
|
*/
|
||||||
|
public function testRouteWithSameVariableTwice()
|
||||||
|
{
|
||||||
|
$route = new Route('/{name}/{name}');
|
||||||
|
|
||||||
|
$compiled = $route->compile();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user