gamesshop/src/php/DoctrineManager.php

33 lines
981 B
PHP
Raw Normal View History

2024-06-30 20:29:50 +00:00
<?php
declare(strict_types=1);
namespace GamesShop;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\DriverManager;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\ORMSetup;
use GamesShop\Environment\EnvironmentHandler;
final class DoctrineManager
{
public function setup() {
$container = ContainerHandler::getInstance();
$environmentHandler = $container->get(EnvironmentHandler::class);
$config = ORMSetup::createAttributeMetadataConfiguration(
paths: [ Paths::PHP_SOURCE_PATH . '/Entities' ],
isDevMode: !$environmentHandler->isProduction()
);
$dbEnvironment = $environmentHandler->getDatabaseEnvironment();
$connection = DriverManager::getConnection($dbEnvironment->getDoctrineConfig());
$entityManager = new EntityManager($connection, $config);
$container->addShared(EntityManager::class, $entityManager);
$container->addShared(Connection::class, $connection);
}
}