Skip to content

Commit 6e6e333

Browse files
committed
Added: ability to pass entity manager name to use
1 parent b5fa615 commit 6e6e333

File tree

4 files changed

+22
-4
lines changed

4 files changed

+22
-4
lines changed

pkg/enqueue-bundle/DependencyInjection/Configuration.php

+3
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ private function getJobConfiguration(): ArrayNodeDefinition
9494
}
9595

9696
return (new ArrayNodeDefinition('job'))
97+
->children()
98+
->scalarNode('entity_manager_name')->defaultNull()->end()
99+
->end()
97100
->addDefaultsIfNotSet()
98101
->canBeEnabled()
99102
;

pkg/enqueue-bundle/DependencyInjection/EnqueueExtension.php

+5
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,11 @@ public function load(array $configs, ContainerBuilder $container): void
9898
throw new \LogicException('Job-queue supports only default configuration.');
9999
}
100100

101+
$container->setParameter(
102+
'enqueue.job.entity_manager_name',
103+
$modules['job']['entity_manager_name']
104+
);
105+
101106
$loader->load('job.yml');
102107
}
103108

pkg/enqueue-bundle/Resources/config/job.yml

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ services:
99
- '@doctrine'
1010
- 'Enqueue\JobQueue\Doctrine\Entity\Job'
1111
- '%enqueue.job.unique_job_table_name%'
12+
- '%enqueue.job.entity_manager_name%'
1213

1314
# Deprecated. To be removed in 0.10.
1415
enqueue.job.storage:

pkg/job-queue/Doctrine/JobStorage.php

+13-4
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,23 @@ class JobStorage
3838
*/
3939
private $uniqueTableName;
4040

41+
/**
42+
* @var string
43+
*/
44+
private $entityManagerName;
45+
4146
/**
4247
* @param ManagerRegistry $doctrine
43-
* @param string $entityClass
44-
* @param string $uniqueTableName
48+
* @param string $entityClass
49+
* @param string $uniqueTableName
50+
* @param $entityManagerName
4551
*/
46-
public function __construct(ManagerRegistry $doctrine, $entityClass, $uniqueTableName)
52+
public function __construct(ManagerRegistry $doctrine, $entityClass, $uniqueTableName, $entityManagerName)
4753
{
4854
$this->doctrine = $doctrine;
4955
$this->entityClass = $entityClass;
5056
$this->uniqueTableName = $uniqueTableName;
57+
$this->entityManagerName = $entityManagerName;
5158
}
5259

5360
/**
@@ -210,7 +217,9 @@ private function getEntityRepository()
210217
private function getEntityManager()
211218
{
212219
if (!$this->em) {
213-
$this->em = $this->doctrine->getManagerForClass($this->entityClass);
220+
$this->em = empty($this->entityManagerName)
221+
? $this->doctrine->getManagerForClass($this->entityClass)
222+
: $this->doctrine->getManager($this->entityManagerName);
214223
}
215224
if (!$this->em->isOpen()) {
216225
$this->em = $this->doctrine->resetManager();

0 commit comments

Comments
 (0)