Skip to content

Commit 1a38015

Browse files
committed
feature #21625 Remove some container injections in favor of service locators (nicolas-grekas, chalasr)
This PR was merged into the 3.3-dev branch. Discussion ---------- Remove some container injections in favor of service locators | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | yes | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | symfony/symfony#21553 (comment) | License | MIT | Doc PR | n/a Commits ------- 8293b753cf Replace some container injections by service locators 0be9ea8ba1 [EventDispatcher] Fix abstract event subscribers registration
2 parents 19b0d44 + 0ee4562 commit 1a38015

File tree

6 files changed

+21
-26
lines changed

6 files changed

+21
-26
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ CHANGELOG
1515
* Added configurable paths for validation files
1616
* Deprecated `SerializerPass`, use `Symfony\Component\Serializer\DependencyInjection\SerializerPass` instead
1717
* Deprecated `FormPass`, use `Symfony\Component\Form\DependencyInjection\FormPass` instead
18+
* Deprecated `SessionListener`
19+
* Deprecated `TestSessionListener`
1820

1921
3.2.0
2022
-----

EventListener/SessionListener.php

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,16 @@
1212
namespace Symfony\Bundle\FrameworkBundle\EventListener;
1313

1414
use Symfony\Component\HttpKernel\EventListener\SessionListener as BaseSessionListener;
15-
use Symfony\Component\DependencyInjection\ContainerInterface;
15+
16+
@trigger_error(sprintf('The %s class is deprecated since version 3.3 and will be removed in 4.0. Use %s instead.', SessionListener::class, BaseSessionListener::class), E_USER_DEPRECATED);
1617

1718
/**
1819
* Sets the session in the request.
1920
*
2021
* @author Fabien Potencier <fabien@symfony.com>
22+
*
23+
* @deprecated since version 3.3, to be removed in 4.0. Use {@link BaseSessionListener} instead
2124
*/
2225
class SessionListener extends BaseSessionListener
2326
{
24-
/**
25-
* @var ContainerInterface
26-
*/
27-
private $container;
28-
29-
public function __construct(ContainerInterface $container)
30-
{
31-
$this->container = $container;
32-
}
33-
34-
protected function getSession()
35-
{
36-
if (!$this->container->has('session')) {
37-
return;
38-
}
39-
40-
return $this->container->get('session');
41-
}
4227
}

EventListener/TestSessionListener.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,19 @@
1111

1212
namespace Symfony\Bundle\FrameworkBundle\EventListener;
1313

14-
use Symfony\Component\HttpKernel\EventListener\TestSessionListener as BaseTestSessionListener;
14+
@trigger_error(sprintf('The %s class is deprecated since version 3.3 and will be removed in 4.0. Use Symfony\Component\HttpKernel\EventListener\TestSessionListener instead.', TestSessionListener::class), E_USER_DEPRECATED);
15+
16+
use Symfony\Component\HttpKernel\EventListener\AbstractTestSessionListener;
1517
use Symfony\Component\DependencyInjection\ContainerInterface;
1618

1719
/**
1820
* TestSessionListener.
1921
*
2022
* @author Fabien Potencier <fabien@symfony.com>
23+
*
24+
* @deprecated since version 3.3, to be removed in 4.0.
2125
*/
22-
class TestSessionListener extends BaseTestSessionListener
26+
class TestSessionListener extends AbstractTestSessionListener
2327
{
2428
protected $container;
2529

Resources/config/fragment_renderer.xml

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

1212
<services>
1313
<service id="fragment.handler" class="Symfony\Component\HttpKernel\DependencyInjection\LazyLoadingFragmentHandler">
14-
<argument type="service" id="service_container" />
14+
<argument /> <!-- fragment renderer locator -->
1515
<argument type="service" id="request_stack" />
1616
<argument>%kernel.debug%</argument>
1717
</service>

Resources/config/session.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,11 @@
4747

4848
<service id="session.handler.write_check" class="Symfony\Component\HttpFoundation\Session\Storage\Handler\WriteCheckSessionHandler" public="false" />
4949

50-
<service id="session_listener" class="Symfony\Bundle\FrameworkBundle\EventListener\SessionListener">
50+
<service id="session_listener" class="Symfony\Component\HttpKernel\EventListener\SessionListener">
5151
<tag name="kernel.event_subscriber" />
52-
<argument type="service" id="service_container" />
52+
<argument type="service-locator">
53+
<argument key="session" type="service" id="session" on-invalid="null" />
54+
</argument>
5355
</service>
5456

5557
<service id="session.save_listener" class="Symfony\Component\HttpKernel\EventListener\SaveSessionListener">

Resources/config/test.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@
2020

2121
<service id="test.client.cookiejar" class="Symfony\Component\BrowserKit\CookieJar" shared="false" />
2222

23-
<service id="test.session.listener" class="Symfony\Bundle\FrameworkBundle\EventListener\TestSessionListener">
24-
<argument type="service" id="service_container" />
23+
<service id="test.session.listener" class="Symfony\Component\HttpKernel\EventListener\TestSessionListener">
2524
<tag name="kernel.event_subscriber" />
25+
<argument type="service-locator">
26+
<argument key="session" type="service" id="session" on-invalid="null" />
27+
</argument>
2628
</service>
2729
</services>
2830
</container>

0 commit comments

Comments
 (0)