Skip to content

Commit 3c796e1

Browse files
committed
[Routing] Continue supporting single colon in object route loaders
1 parent ec781c9 commit 3c796e1

File tree

3 files changed

+7
-26
lines changed

3 files changed

+7
-26
lines changed

src/Symfony/Component/Routing/Loader/ObjectLoader.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,15 @@ abstract protected function getObject(string $id);
4242
*/
4343
public function load($resource, $type = null)
4444
{
45-
if (!preg_match('/^[^\:]+(?:::(?:[^\:]+))?$/', $resource)) {
45+
if (!preg_match('/^[^\:]+(?:::?(?:[^\:]+))?$/', $resource)) {
4646
throw new \InvalidArgumentException(sprintf('Invalid resource "%s" passed to the %s route loader: use the format "object_id::method" or "object_id" if your object class has an "__invoke" method.', $resource, \is_string($type) ? '"'.$type.'"' : 'object'));
4747
}
4848

49+
if (1 === substr_count($resource, ':')) {
50+
$resource = str_replace(':', '::', $resource);
51+
@trigger_error(sprintf('Referencing object route loaders with a single colon is deprecated since Symfony 4.1. Use %s instead.', $resource), E_USER_DEPRECATED);
52+
}
53+
4954
$parts = explode('::', $resource);
5055
$method = $parts[1] ?? '__invoke';
5156

src/Symfony/Component/Routing/Loader/ObjectRouteLoader.php

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@
1111

1212
namespace Symfony\Component\Routing\Loader;
1313

14-
use Symfony\Component\Routing\RouteCollection;
15-
1614
@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.4, use "%s" instead.', ObjectRouteLoader::class, ObjectLoader::class), E_USER_DEPRECATED);
1715

1816
/**
@@ -36,28 +34,6 @@ abstract class ObjectRouteLoader extends ObjectLoader
3634
*/
3735
abstract protected function getServiceObject($id);
3836

39-
/**
40-
* Calls the service that will load the routes.
41-
*
42-
* @param string $resource Some value that will resolve to a callable
43-
* @param string|null $type The resource type
44-
*
45-
* @return RouteCollection
46-
*/
47-
public function load($resource, $type = null)
48-
{
49-
if (!preg_match('/^[^\:]+(?:::?(?:[^\:]+))?$/', $resource)) {
50-
throw new \InvalidArgumentException(sprintf('Invalid resource "%s" passed to the "service" route loader: use the format "service::method" or "service" if your service has an "__invoke" method.', $resource));
51-
}
52-
53-
if (1 === substr_count($resource, ':')) {
54-
$resource = str_replace(':', '::', $resource);
55-
@trigger_error(sprintf('Referencing service route loaders with a single colon is deprecated since Symfony 4.1. Use %s instead.', $resource), E_USER_DEPRECATED);
56-
}
57-
58-
return parent::load($resource, $type);
59-
}
60-
6137
/**
6238
* {@inheritdoc}
6339
*/

src/Symfony/Component/Routing/Tests/Loader/ObjectRouteLoaderTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
class ObjectRouteLoaderTest extends TestCase
2323
{
2424
/**
25-
* @expectedDeprecation Referencing service route loaders with a single colon is deprecated since Symfony 4.1. Use my_route_provider_service::loadRoutes instead.
25+
* @expectedDeprecation Referencing object route loaders with a single colon is deprecated since Symfony 4.1. Use my_route_provider_service::loadRoutes instead.
2626
*/
2727
public function testLoadCallsServiceAndReturnsCollectionWithLegacyNotation()
2828
{

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy