ZF-12087: Zend Route Chain Assembly of empty static routes
Description
When chaining empty static routes, the chain route assembly method adds separator, despite an empty route.
Reproduction code: $this->bootstrap('FrontController'); $front = $this->getResource('FrontController'); $router = $front->getRouter();
$router->removeDefaultRoutes(); $emptyRoute = new Zend_Controller_Router_Route_Static(''); $testRoute = new Zend_Controller_Router_Route_Static('test'); $chainedRoute = $emptyRoute->chain($testRoute); $router->addRoute('test',$chainedRoute);
$emptyRoute2 = new Zend_Controller_Router_Route_Static(''); $testRoute2 = new Zend_Controller_Router_Route_Static('test'); $chainedRoute2 = $emptyRoute2->chain($testRoute2); $testRoute2a = $chainedRoute2->chain($emptyRoute2); $router->addRoute('test2',$testRoute2a->chain($testRoute2));
echo $router->assemble(array(),'test');
echo '
';
echo $router->assemble(array(),'test2');
exit;
RESULT: //test //test//test
Proposed fix in Zend\Controller\Router\Route\Chain.php Line 138 from: if ($key > 0) { to: if( $key > 0 && strlen($value) > 0 && substr($value,-1) != $this->_separators[$key] ) {
Comments
No comments to display