Файл: concrete5.7.5.6/concrete/src/Database/EntityManagerFactory.php
Строк: 110
<?php
namespace ConcreteCoreDatabase;
use ConcreteCoreApplicationApplication;
use ConcreteCoreCacheAdapterDoctrineCacheDriver;
use ConcreteCoreDatabaseConnectionConnection;
use ConcreteCorePackagePackage;
use DoctrineORMEntityManager;
use DoctrineORMToolsSetup;
use Config;
use Database;
use Events;
class EntityManagerFactory implements EntityManagerFactoryInterface
{
protected $entitiesPath;
protected $context;
public function __construct($entitiesPath, $context = null)
{
$this->entitiesPath = $entitiesPath;
$this->context = null;
}
public function create(Connection $connection)
{
$config = Setup::createConfiguration(
Config::get('concrete.cache.doctrine_dev_mode'),
Config::get('database.proxy_classes'),
new DoctrineCacheDriver('cache/expensive')
);
$driverImpl = $config->newDefaultAnnotationDriver($this->entitiesPath);
$driverImpl->addExcludePaths(Config::get('database.proxy_exclusions', array()));
$config->setMetadataDriverImpl($driverImpl);
$event = new SymfonyComponentEventDispatcherGenericEvent();
$event->setArgument('connection', $connection);
$event->setArgument('configuration', $config);
$event->setArgument('context', $this->context);
Events::dispatch('on_entity_manager_configure', $event);
$config = $event->getArgument('configuration');
return EntityManager::create($connection, $config);
}
}