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