Skip to content

Commit 35cdf61

Browse files
committed
minor #31702 [FrameworkBundle] Remove support for the bundle:controller:action notation (Simperfit)
This PR was merged into the 5.0-dev branch. Discussion ---------- [FrameworkBundle] Remove support for the bundle:controller:action notation | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | no <!-- please update src/**/CHANGELOG.md files --> | BC breaks? | no <!-- see https://symfony.com/bc --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tests pass? | yes <!-- please add some, will be required by reviewers --> | Fixed tickets | none <!-- #-prefixed issue number(s), if any --> | License | MIT | Doc PR |none no mention in the docs <!-- required for new features --> <!-- Replace this notice by a short README for your feature/bugfix. This will help people understand your PR and can be used as a start for the documentation. Additionally (see https://symfony.com/roadmap): - Bug fixes must be submitted against the lowest maintained branch where they apply (lowest branches are regularly merged to upper ones so they get the fixes too). - Features and deprecations must be submitted against the master branch. --> This remove the ResolveControllerNameSubscriber since it is deprecated, it ease the cleaning of HttpKernel see #31672 (comment) Commits ------- 29e3c2f [FrameworkBundle] remove deprecater controller a:b:c notation
2 parents 4022407 + 29e3c2f commit 35cdf61

File tree

12 files changed

+15
-649
lines changed

12 files changed

+15
-649
lines changed

UPGRADE-5.0.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ FrameworkBundle
220220
* Support for the legacy directory structure in `translation:update` and `debug:translation` commands has been removed.
221221
* Removed the "Psr\SimpleCache\CacheInterface" / "cache.app.simple" service, use "Symfony\Contracts\Cache\CacheInterface" / "cache.app" instead.
222222
* Removed support for `templating` engine in `TemplateController`, use Twig instead
223+
* Removed `ResolveControllerNameSubscriber`.
223224

224225
HttpClient
225226
----------

src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ CHANGELOG
55
-----
66

77
* Removed support to load translation resources from the legacy directories `src/Resources/translations/` and `src/Resources/<BundleName>/translations/`
8+
* Removed `ControllerNameParser`.
9+
* Removed `ResolveControllerNameSubscriber`
10+
* Removed support for `bundle:controller:action` to reference controllers. Use `serviceOrFqcn::method` instead
811
* Removed support for PHP templating, use Twig instead
912

1013
4.4.0

src/Symfony/Bundle/FrameworkBundle/Controller/ControllerNameParser.php

Lines changed: 0 additions & 146 deletions
This file was deleted.

src/Symfony/Bundle/FrameworkBundle/Controller/ControllerResolver.php

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@
1111

1212
namespace Symfony\Bundle\FrameworkBundle\Controller;
1313

14-
use Psr\Log\LoggerInterface;
1514
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
16-
use Symfony\Component\DependencyInjection\ContainerInterface;
1715
use Symfony\Component\HttpKernel\Controller\ContainerControllerResolver;
1816

1917
/**
@@ -23,45 +21,6 @@
2321
*/
2422
class ControllerResolver extends ContainerControllerResolver
2523
{
26-
/**
27-
* @deprecated since Symfony 4.4
28-
*/
29-
protected $parser;
30-
31-
/**
32-
* @param LoggerInterface|null $logger
33-
*/
34-
public function __construct(ContainerInterface $container, $logger = null)
35-
{
36-
if ($logger instanceof ControllerNameParser) {
37-
@trigger_error(sprintf('Passing a "%s" instance as 2nd argument to "%s()" is deprecated since Symfony 4.4, pass a "%s" instance or null instead.', ControllerNameParser::class, __METHOD__, LoggerInterface::class), E_USER_DEPRECATED);
38-
$this->parser = $logger;
39-
$logger = 2 < \func_num_args() ? func_get_arg(2) : null;
40-
} elseif (2 < \func_num_args() && func_get_arg(2) instanceof ControllerNameParser) {
41-
$this->parser = func_get_arg(2);
42-
} elseif ($logger && !$logger instanceof LoggerInterface) {
43-
throw new \TypeError(sprintf('Argument 2 of "%s()" must be an instance of "%s" or null, "%s" given.', __METHOD__, LoggerInterface::class, \is_object($logger) ? \get_class($logger) : \gettype($logger)), E_USER_DEPRECATED);
44-
}
45-
46-
parent::__construct($container, $logger);
47-
}
48-
49-
/**
50-
* {@inheritdoc}
51-
*/
52-
protected function createController($controller)
53-
{
54-
if ($this->parser && false === strpos($controller, '::') && 2 === substr_count($controller, ':')) {
55-
// controller in the a:b:c notation then
56-
$deprecatedNotation = $controller;
57-
$controller = $this->parser->parse($deprecatedNotation, false);
58-
59-
@trigger_error(sprintf('Referencing controllers with %s is deprecated since Symfony 4.1. Use %s instead.', $deprecatedNotation, $controller), E_USER_DEPRECATED);
60-
}
61-
62-
return parent::createController($controller);
63-
}
64-
6524
/**
6625
* {@inheritdoc}
6726
*/
@@ -77,9 +36,7 @@ private function configureController($controller, string $class)
7736
}
7837
if ($controller instanceof AbstractController) {
7938
if (null === $previousContainer = $controller->setContainer($this->container)) {
80-
@trigger_error(sprintf('Auto-injection of the container for "%s" is deprecated since Symfony 4.2. Configure it as a service instead.', $class), E_USER_DEPRECATED);
81-
// To be uncommented on Symfony 5:
82-
//throw new \LogicException(sprintf('"%s" has no container set, did you forget to define it as a service subscriber?', $class));
39+
throw new \LogicException(sprintf('"%s" has no container set, did you forget to define it as a service subscriber?', $class));
8340
} else {
8441
$controller->setContainer($previousContainer);
8542
}

src/Symfony/Bundle/FrameworkBundle/EventListener/ResolveControllerNameSubscriber.php

Lines changed: 0 additions & 56 deletions
This file was deleted.

src/Symfony/Bundle/FrameworkBundle/Resources/config/routing.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
<service id="routing.loader" class="Symfony\Bundle\FrameworkBundle\Routing\DelegatingLoader" public="true">
4949
<argument type="service" id="routing.resolver" />
5050
<argument type="collection" />
51-
<argument type="service" id=".legacy_controller_name_converter" /> <!-- deprecated since Symfony 4.4 -->
5251
</service>
5352

5453
<service id="router.default" class="Symfony\Bundle\FrameworkBundle\Routing\Router">

src/Symfony/Bundle/FrameworkBundle/Resources/config/web.xml

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,10 @@
77
<services>
88
<defaults public="false" />
99

10-
<service id=".legacy_controller_name_converter" class="Symfony\Bundle\FrameworkBundle\Controller\ControllerNameParser">
11-
<tag name="monolog.logger" channel="request" />
12-
<argument type="service" id="kernel" />
13-
<argument>false</argument>
14-
</service>
15-
16-
<service id="controller_name_converter" alias=".legacy_controller_name_converter">
17-
<deprecated>The "%alias_id%" service is deprecated since Symfony 4.3.</deprecated>
18-
</service>
19-
2010
<service id="controller_resolver" class="Symfony\Bundle\FrameworkBundle\Controller\ControllerResolver">
2111
<tag name="monolog.logger" channel="request" />
2212
<argument type="service" id="service_container" />
2313
<argument type="service" id="logger" on-invalid="ignore" />
24-
<argument type="service" id=".legacy_controller_name_converter" />
2514
</service>
2615

2716
<service id="argument_metadata_factory" class="Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory" />
@@ -86,15 +75,6 @@
8675
<tag name="kernel.event_subscriber" />
8776
</service>
8877

89-
<service id=".legacy_resolve_controller_name_subscriber" class="Symfony\Bundle\FrameworkBundle\EventListener\ResolveControllerNameSubscriber">
90-
<argument type="service" id=".legacy_controller_name_converter" />
91-
<argument>false</argument>
92-
<tag name="kernel.event_subscriber" />
93-
</service>
94-
<service id="resolve_controller_name_subscriber" alias=".legacy_resolve_controller_name_subscriber">
95-
<deprecated>The "%alias_id%" service is deprecated since Symfony 4.3.</deprecated>
96-
</service>
97-
9878
<service id="disallow_search_engine_index_response_listener" class="Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener">
9979
<tag name="kernel.event_subscriber" />
10080
</service>

src/Symfony/Bundle/FrameworkBundle/Routing/DelegatingLoader.php

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
namespace Symfony\Bundle\FrameworkBundle\Routing;
1313

14-
use Symfony\Bundle\FrameworkBundle\Controller\ControllerNameParser;
1514
use Symfony\Component\Config\Exception\LoaderLoadException;
1615
use Symfony\Component\Config\Loader\DelegatingLoader as BaseDelegatingLoader;
1716
use Symfony\Component\Config\Loader\LoaderResolverInterface;
@@ -28,28 +27,11 @@
2827
*/
2928
class DelegatingLoader extends BaseDelegatingLoader
3029
{
31-
/**
32-
* @deprecated since Symfony 4.4
33-
*/
34-
protected $parser;
3530
private $loading = false;
3631
private $defaultOptions;
3732

38-
/**
39-
* @param LoaderResolverInterface $resolver
40-
* @param array $defaultOptions
41-
*/
42-
public function __construct($resolver, $defaultOptions = [])
33+
public function __construct(LoaderResolverInterface $resolver, array $defaultOptions = [])
4334
{
44-
if ($resolver instanceof ControllerNameParser) {
45-
@trigger_error(sprintf('Passing a "%s" instance as first argument to "%s()" is deprecated since Symfony 4.4, pass a "%s" instance instead.', ControllerNameParser::class, __METHOD__, LoaderResolverInterface::class), E_USER_DEPRECATED);
46-
$this->parser = $resolver;
47-
$resolver = $defaultOptions;
48-
$defaultOptions = 2 < \func_num_args() ? func_get_arg(2) : [];
49-
} elseif (2 < \func_num_args() && func_get_arg(2) instanceof ControllerNameParser) {
50-
$this->parser = func_get_arg(2);
51-
}
52-
5335
$this->defaultOptions = $defaultOptions;
5436

5537
parent::__construct($resolver);
@@ -99,18 +81,6 @@ public function load($resource, $type = null)
9981
continue;
10082
}
10183

102-
if ($this->parser && 2 === substr_count($controller, ':')) {
103-
$deprecatedNotation = $controller;
104-
105-
try {
106-
$controller = $this->parser->parse($controller, false);
107-
108-
@trigger_error(sprintf('Referencing controllers with %s is deprecated since Symfony 4.1, use "%s" instead.', $deprecatedNotation, $controller), E_USER_DEPRECATED);
109-
} catch (\InvalidArgumentException $e) {
110-
// unable to optimize unknown notation
111-
}
112-
}
113-
11484
if (1 === substr_count($controller, ':')) {
11585
$nonDeprecatedNotation = str_replace(':', '::', $controller);
11686
// TODO deprecate this in 5.1

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