-
Notifications
You must be signed in to change notification settings - Fork 2.5k
/
AbstractEntityManagerCommand.php
49 lines (38 loc) · 1.63 KB
/
AbstractEntityManagerCommand.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
declare(strict_types=1);
namespace Doctrine\ORM\Tools\Console\Command;
use Doctrine\Deprecations\Deprecation;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Tools\Console\EntityManagerProvider;
use Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use function assert;
abstract class AbstractEntityManagerCommand extends Command
{
/** @var EntityManagerProvider|null */
private $entityManagerProvider;
public function __construct(?EntityManagerProvider $entityManagerProvider = null)
{
parent::__construct();
$this->entityManagerProvider = $entityManagerProvider;
}
final protected function getEntityManager(InputInterface $input): EntityManagerInterface
{
// This is a backwards compatibility required check for commands extending Doctrine ORM commands
if (! $input->hasOption('em') || $this->entityManagerProvider === null) {
Deprecation::trigger(
'doctrine/orm',
'https://github.com/doctrine/orm/issues/8327',
'Not passing EntityManagerProvider as a dependency to command class "%s" is deprecated',
static::class
);
$helper = $this->getHelper('em');
assert($helper instanceof EntityManagerHelper);
return $helper->getEntityManager();
}
return $input->getOption('em') === null
? $this->entityManagerProvider->getDefaultManager()
: $this->entityManagerProvider->getManager($input->getOption('em'));
}
}