/
home
/
obinna
/
html
/
boazapp
/
vendor
/
doctrine
/
doctrine-bundle
/
Upload File
HOME
<?php namespace Doctrine\Bundle\DoctrineBundle; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\ORMException; use ProxyManager\Proxy\LazyLoadingInterface; use Psr\Container\ContainerInterface; use Symfony\Bridge\Doctrine\ManagerRegistry; use Symfony\Contracts\Service\ResetInterface; use function array_keys; use function assert; /** * References all Doctrine connections and entity managers in a given Container. */ class Registry extends ManagerRegistry implements ResetInterface { /** * @param string[] $connections * @param string[] $entityManagers */ public function __construct(ContainerInterface $container, array $connections, array $entityManagers, string $defaultConnection, string $defaultEntityManager) { $this->container = $container; parent::__construct('ORM', $connections, $entityManagers, $defaultConnection, $defaultEntityManager, 'Doctrine\ORM\Proxy\Proxy'); } /** * Resolves a registered namespace alias to the full namespace. * * This method looks for the alias in all registered entity managers. * * @see Configuration::getEntityNamespace * * @param string $alias The alias * * @return string The full namespace */ public function getAliasNamespace($alias) { foreach (array_keys($this->getManagers()) as $name) { $objectManager = $this->getManager($name); if (! $objectManager instanceof EntityManagerInterface) { continue; } try { return $objectManager->getConfiguration()->getEntityNamespace($alias); } catch (ORMException $e) { } } throw ORMException::unknownEntityNamespace($alias); } public function reset(): void { foreach ($this->getManagerNames() as $managerName => $serviceId) { $this->resetOrClearManager($managerName, $serviceId); } } private function resetOrClearManager(string $managerName, string $serviceId): void { if (! $this->container->initialized($serviceId)) { return; } $manager = $this->container->get($serviceId); assert($manager instanceof EntityManagerInterface); if (! $manager instanceof LazyLoadingInterface || $manager->isOpen()) { $manager->clear(); return; } $this->resetManager($managerName); } }