8000 [HttpKernel] Deprecate single-colon notation for controllers · symfony/symfony@e88cec6 · GitHub
[go: up one dir, main page]

Skip to content

Commit e88cec6

Browse files
committed
[HttpKernel] Deprecate single-colon notation for controllers
1 parent eb0e47b commit e88cec6

File tree

8 files changed

+23
-8
lines changed

8 files changed

+23
-8
lines changed

UPGRADE-5.1.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ HttpFoundation
3939
`__construct()` instead)
4040
* Made the Mime component an optional dependency
4141

42+
HttpKernel
43+
----------
44+
45+
* Deprecated support for `service:action` syntax to reference controllers. Use `serviceOrFqcn::method` instead.
46+
4247
Mailer
4348
------
4449

UPGRADE-6.0.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ HttpFoundation
3636
`RedirectResponse::create()`, and `StreamedResponse::create()` methods (use
3737
`__construct()` instead)
3838

39+
HttpKernel
40+
----------
41+
42+
* Removed support for `service:action` syntax to reference controllers. Use `serviceOrFqcn::method` instead.
43+
3944
Messenger
4045
---------
4146

src/Symfony/Bundle/WebProfilerBundle/Tests/Controller/ProfilerControllerTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public function testPanelActionWithLatestToken()
7171
$client->request('GET', '/');
7272
$client->request('GET', '/_profiler/latest');
7373

74-
$this->assertStringContainsString('kernel:homepageController', $client->getResponse()->getContent());
74+
$this->assertStringContainsString('kernel::homepageController', $client->getResponse()->getContent());
7575
}
7676

7777
public function testPanelActionWithoutValidToken()

src/Symfony/Bundle/WebProfilerBundle/Tests/Functional/WebProfilerBundleKernel.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ protected function configureRoutes(RoutingConfigurator $routes)
3434
{
3535
$routes->import(__DIR__.'/../../Resources/config/routing/profiler.xml')->prefix('/_profiler');
3636
$routes->import(__DIR__.'/../../Resources/config/routing/wdt.xml')->prefix('/_wdt');
37-
$routes->add('_', '/')->controller('kernel:homepageController');
37+
$routes->add('_', '/')->controller('kernel::homepageController');
3838
}
3939

4040
protected function configureContainer(ContainerBuilder $containerBuilder, LoaderInterface $loader)

src/Symfony/Component/HttpKernel/CHANGELOG.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@ CHANGELOG
44
5.1.0
55
-----
66

7+
* deprecated support for `service:action` syntax to reference controllers, use `serviceOrFqcn::method` instead
78
* allowed using public aliases to reference controllers
89
* added session usage reporting when the `_stateless` attribute of the request is set to `true`
910

1011
5.0.0
1112
-----
1213

1314
* removed support for getting the container from a non-booted kernel
14-
* removed the first and second constructor argument of `ConfigDataCollector`
15-
* removed `ConfigDataCollector::getApplicationName()`
15+
* removed the first and second constructor argument of `ConfigDataCollector`
16+
* removed `ConfigDataCollector::getApplicationName()`
1617
* removed `ConfigDataCollector::getApplicationVersion()`
1718
* removed support for `Symfony\Component\Templating\EngineInterface` in `HIncludeFragmentRenderer`, use a `Twig\Environment` only
1819
* removed `TranslatorListener` in favor of `LocaleAwareListener`
@@ -24,7 +25,7 @@ CHANGELOG
2425
* removed `GetResponseForControllerResultEvent`, use `ViewEvent` instead
2526
* removed `GetResponseForExceptionEvent`, use `ExceptionEvent` instead
2627
* removed `PostResponseEvent`, use `TerminateEvent` instead
27-
* removed `SaveSessionListener` in favor of `AbstractSessionListener`
28+
* removed `SaveSessionListener` in favor of `AbstractSessionListener`
2829
* removed `Client`, use `HttpKernelBrowser` instead
2930
* added method `getProjectDir()` to `KernelInterface`
3031
* removed methods `serialize` and `unserialize` from `DataCollector`, store the serialized state in the data property instead

src/Symfony/Component/HttpKernel/Controller/ContainerControllerResolver.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use Symfony\Component\DependencyInjection\Container;
1717

1818
/**
19-
* A controller resolver searching for a controller in a psr-11 container when using the "service:method" notation.
19+
* A controller resolver searching for a controller in a psr-11 container when using the "service::method" notation.
2020
*
2121
* @author Fabien Potencier <fabien@symfony.com>
2222
* @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
@@ -36,7 +36,7 @@ protected function createController(string $controller)
3636
{
3737
if (1 === substr_count($controller, ':')) {
3838
$controller = str_replace(':', '::', $controller);
39-
// TODO deprecate this in 5.1
39+
trigger_deprecation('symfony/http-kernel', '5.1', 'Referencing controllers with a single colon is deprecated. Use "%s" instead.', $controller);
4040
}
4141

4242
return parent::createController($controller);

src/Symfony/Component/HttpKernel/Tests/Controller/ContainerControllerResolverTest.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919

2020
class ContainerControllerResolverTest extends ControllerResolverTest
2121
{
22+
/**
23+
* @group legacy
24+
* @expectedDeprecation Since symfony/http-kernel 5.1: Referencing controllers with a single colon is deprecated. Use "foo::action" instead.
25+
*/
2226
public function testGetControllerServiceWithSingleColon()
2327
{
2428
$service = new ControllerTestService('foo');
@@ -145,7 +149,6 @@ public function getControllers()
145149
{
146150
return [
147151
['\\'.ControllerTestService::class.'::action'],
148-
['\\'.ControllerTestService::class.':action'],
149152
];
150153
}
151154

src/Symfony/Component/HttpKernel/composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
],
1818
"require": {
1919
"php": "^7.2.5",
20+
"symfony/deprecation-contracts": "^2.1",
2021
"symfony/error-handler": "^4.4|^5.0",
2122
"symfony/event-dispatcher": "^5.0",
2223
"symfony/http-foundation": "^4.4|^5.0",

0 commit comments

Comments
 (0)
0