Skip to content

Commit

Permalink
[MultiTenancy] enable multi tenancy doctrine to only be applied to gl…
Browse files Browse the repository at this point in the history
…obal manager entity
  • Loading branch information
that-guy-iain committed May 22, 2024
1 parent e2e5e11 commit aa68cca
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 10 deletions.
2 changes: 2 additions & 0 deletions src/Parthenon/DependencyInjection/Modules/MultiTenancy.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ public function addConfig(NodeBuilder $nodeBuilder): void
->children()
->scalarNode('dbal_connection')->end()
->scalarNode('global_dbal_connection')->end()
->scalarNode('global_orm_entity_manager')->end()
->scalarNode('orm_entity_manager')->end()
->scalarNode('default_database')->end()
->end()
Expand Down Expand Up @@ -73,6 +74,7 @@ public function handleDefaultParameters(ContainerBuilder $container): void
$container->setParameter('parthenon_multi_tenancy_dbal_connection', '');
$container->setParameter('parthenon_multi_tenancy_global_dbal_connection', '');
$container->setParameter('parthenon_multi_tenancy_orm_entity_manager', '');
$container->setParameter('parthenon_multi_tenancy_global_orm_entity_manager', '');
$container->setParameter('parthenon_multi_tenancy_default_database', 'dummy_database');
$container->setParameter('parthenon_multi_tenancy_digitalocean_cluster_id', '');
$container->setParameter('parthenon_multi_tenancy_is_enabled', false);
Expand Down
24 changes: 14 additions & 10 deletions src/Parthenon/ParthenonBundle.php
Original file line number Diff line number Diff line change
Expand Up @@ -74,14 +74,18 @@ public function build(ContainerBuilder $container): void
];

$bundles = $container->getParameter('kernel.bundles');
$global = $container->getParameter('parthenon_multi_tenancy_global_orm_entity_manager');

if (isset($bundles['DoctrineBundle'])) {
$container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($mappings, ['parthenon.orm']));
$container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($abMappings, ['parthenon.ab_testing.orm'], enabledParameter: 'parthenon_abtesting_enabled'));
$container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($exportMappings, ['parthenon.export.orm'], enabledParameter: 'parthenon_export_enabled'));
$container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($multiTenacyMappings, ['parthenon.multi_tenancy.orm'], enabledParameter: 'parthenon_multi_tenancy_enabled'));
$container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($paymentMappings, ['parthenon.payments.orm'], enabledParameter: 'parthenon_payments_enabled'));
$container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($userMappings, ['parthenon.user.orm'], enabledParameter: 'parthenon_user_enabled'));
$container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($mappings));
$container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($abMappings, enabledParameter: 'parthenon_abtesting_enabled'));
$container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($exportMappings, enabledParameter: 'parthenon_export_enabled'));
if ($global) {
$manager = sprintf('doctrine.%s_entity_manager', $global);
$container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($multiTenacyMappings, [$manager], enabledParameter: 'parthenon_multi_tenancy_enabled'));
}
$container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($paymentMappings, enabledParameter: 'parthenon_payments_enabled'));
$container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($userMappings, enabledParameter: 'parthenon_user_enabled'));

Type::overrideType('datetime', UtcDateTimeType::class);
Type::overrideType('datetimetz', UtcDateTimeType::class);
Expand Down Expand Up @@ -122,11 +126,11 @@ public function handleAthenaDoctrine(ContainerBuilder $containerBuilder): void

// Doctrine ORM Bundle
if (isset($bundles['DoctrineBundle'])) {
$containerBuilder->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($athenaMappings, ['parthenon.athena.orm'], enabledParameter: 'parthenon_athena_enabled'));
$containerBuilder->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($athenaMappings, enabledParameter: 'parthenon_athena_enabled'));
}
// Doctrine ODM Bundle
if (isset($bundles['DoctrineMongoDBBundle'])) {
$containerBuilder->addCompilerPass(DoctrineMongoDBMappingsPass::createXmlMappingDriver($athenaMappings, ['parthenon.athena.mongodb'], enabledParameter: 'parthenon_athena_enabled'));
$containerBuilder->addCompilerPass(DoctrineMongoDBMappingsPass::createXmlMappingDriver($athenaMappings, enabledParameter: 'parthenon_athena_enabled'));
}
}

Expand All @@ -141,11 +145,11 @@ public function handleBillingDoctrine(ContainerBuilder $containerBuilder): void

// Doctrine ORM Bundle
if (isset($bundles['DoctrineBundle'])) {
$containerBuilder->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($mappings, ['parthenon.billing.orm'], enabledParameter: 'parthenon_billing_enabled'));
$containerBuilder->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($mappings, enabledParameter: 'parthenon_billing_enabled'));
}
// Doctrine ODM Bundle
if (isset($bundles['DoctrineMongoDBBundle'])) {
$containerBuilder->addCompilerPass(DoctrineMongoDBMappingsPass::createXmlMappingDriver($mappings, ['parthenon.billing.mongodb'], enabledParameter: 'parthenon_billing_enabled'));
$containerBuilder->addCompilerPass(DoctrineMongoDBMappingsPass::createXmlMappingDriver($mappings, enabledParameter: 'parthenon_billing_enabled'));
}
}
}

0 comments on commit aa68cca

Please sign in to comment.