Skip to content

Commit 8906fdb

Browse files
Merge branch '3.4' into 4.3
* 3.4: [DoctrineBridge] try to fix deprecations from doctrine/persistence [Translation] fix memoryleak in PhpFileLoader
2 parents 626c031 + deba1a4 commit 8906fdb

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

Controller/AbstractController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111

1212
namespace Symfony\Bundle\FrameworkBundle\Controller;
1313

14-
use Doctrine\Common\Persistence\ManagerRegistry;
14+
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
15+
use Doctrine\Persistence\ManagerRegistry;
1516
use Psr\Container\ContainerInterface;
1617
use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
1718
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
@@ -82,7 +83,7 @@ public static function getSubscribedServices()
8283
'security.authorization_checker' => '?'.AuthorizationCheckerInterface::class,
8384
'templating' => '?'.EngineInterface::class,
8485
'twig' => '?'.Environment::class,
85-
'doctrine' => '?'.ManagerRegistry::class,
86+
'doctrine' => '?'.(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class),
8687
'form.factory' => '?'.FormFactoryInterface::class,
8788
'security.token_storage' => '?'.TokenStorageInterface::class,
8889
'security.csrf.token_manager' => '?'.CsrfTokenManagerInterface::class,

Controller/ControllerTrait.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111

1212
namespace Symfony\Bundle\FrameworkBundle\Controller;
1313

14-
use Doctrine\Common\Persistence\ManagerRegistry;
14+
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
15+
use Doctrine\Persistence\ManagerRegistry;
1516
use Fig\Link\GenericLinkProvider;
1617
use Fig\Link\Link;
1718
use Psr\Container\ContainerInterface;
@@ -336,11 +337,13 @@ protected function createFormBuilder($data = null, array $options = []): FormBui
336337
/**
337338
* Shortcut to return the Doctrine Registry service.
338339
*
340+
* @return ManagerRegistry|LegacyManagerRegistry
341+
*
339342
* @throws \LogicException If DoctrineBundle is not available
340343
*
341344
* @final
342345
*/
343-
protected function getDoctrine(): ManagerRegistry
346+
protected function getDoctrine()
344347
{
345348
if (!$this->container->has('doctrine')) {
346349
throw new \LogicException('The DoctrineBundle is not registered in your application. Try running "composer require symfony/orm-pack".');

Tests/Controller/ControllerTraitTest.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
namespace Symfony\Bundle\FrameworkBundle\Tests\Controller;
1313

14+
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
15+
use Doctrine\Persistence\ManagerRegistry;
1416
use Fig\Link\Link;
1517
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
1618
use Symfony\Component\DependencyInjection\Container;
@@ -522,7 +524,7 @@ public function testCreateFormBuilder()
522524

523525
public function testGetDoctrine()
524526
{
525-
$doctrine = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')->getMock();
527+
$doctrine = $this->getMockBuilder(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock();
526528

527529
$container = new Container();
528530
$container->set('doctrine', $doctrine);

0 commit comments

Comments
 (0)