kept routes priorities after add a name prefix to the collection

This commit is contained in:
Yonel Ceruto 2020-06-09 12:30:15 -04:00
parent 6d6d989dbe
commit 10105267b5
3 changed files with 20 additions and 3 deletions

View File

@ -171,7 +171,7 @@ class YamlFileLoader extends FileLoader
$schemes = isset($config['schemes']) ? $config['schemes'] : null;
$methods = isset($config['methods']) ? $config['methods'] : null;
$trailingSlashOnRoot = $config['trailing_slash_on_root'] ?? true;
$namePrefix = $config['name_prefix'] ?? '';
$namePrefix = $config['name_prefix'] ?? null;
$exclude = $config['exclude'] ?? null;
if (isset($config['controller'])) {

View File

@ -179,8 +179,8 @@ class RouteCollection implements \IteratorAggregate, \Countable
foreach ($this->routes as $name => $route) {
$prefixedRoutes[$prefix.$name] = $route;
if (null !== $name = $route->getDefault('_canonical_route')) {
$route->setDefault('_canonical_route', $prefix.$name);
if (null !== $canonicalName = $route->getDefault('_canonical_route')) {
$route->setDefault('_canonical_route', $prefix.$canonicalName);
}
if (isset($this->priorities[$name])) {
$prefixedPriorities[$prefix.$name] = $this->priorities[$name];

View File

@ -363,4 +363,21 @@ class RouteCollectionTest extends TestCase
$this->assertSame($expected, $collection2->all());
}
public function testAddWithPriorityAndPrefix()
{
$collection3 = new RouteCollection();
$collection3->add('foo3', $foo3 = new Route('/foo'), 0);
$collection3->add('bar3', $bar3 = new Route('/bar'), 1);
$collection3->add('baz3', $baz3 = new Route('/baz'));
$collection3->addNamePrefix('prefix_');
$expected = [
'prefix_bar3' => $bar3,
'prefix_foo3' => $foo3,
'prefix_baz3' => $baz3,
];
$this->assertSame($expected, $collection3->all());
}
}