public function test_can_replace_an_existing_driver() { $this->manager->extend('annotations', function () { return 'configuration'; }); $this->assertEquals('configuration', $this->manager->driver('annotations')); }
protected function mockMeta() { $this->mappingDriver = m::mock(MappingDriver::class); $this->mappingDriver->shouldReceive('addPaths')->with($this->settings['paths']); $this->mockORMConfiguration(); $this->meta = m::mock(MetaDataManager::class); $this->meta->shouldReceive('driver')->once()->andReturn($this->mappingDriver); }
/** * @param array $settings * * @return EntityManagerInterface */ public function create($settings = []) { $configuration = $this->meta->driver(array_get($settings, 'meta'), $settings); $connection = $this->connection->driver($this->getConnectionDriverName($settings)); $this->setNamingStrategy($settings, $configuration); $this->setCustomFunctions($configuration); $this->setCacheSettings($configuration); $this->configureProxies($settings, $configuration); $this->setCustomMappingDriverChain($settings, $configuration); $this->registerPaths($settings, $configuration); $configuration->setDefaultRepositoryClassName(array_get($settings, 'repository', EntityRepository::class)); $manager = EntityManager::create($connection, $configuration); $manager = $this->decorateManager($settings, $manager); $this->setLogger($manager, $configuration); $this->registerListeners($settings, $manager); $this->registerSubscribers($settings, $manager); $this->registerFilters($settings, $configuration, $manager); return $manager; }
/** * @param array $settings * * @return EntityManagerInterface */ public function create(array $settings = []) { $configuration = $this->setup->createConfiguration(array_get($settings, 'dev', false), array_get($settings, 'proxies.path'), $this->cache->driver()); $configuration->setMetadataDriverImpl($this->meta->driver(array_get($settings, 'meta'), $settings)); $driver = $this->getConnectionDriver($settings); $connection = $this->connection->driver($driver['driver'], $driver); $this->setNamingStrategy($settings, $configuration); $this->setCustomFunctions($configuration); $this->setCustomHydrators($settings, $configuration); $this->setCacheSettings($configuration); $this->configureProxies($settings, $configuration); $this->setCustomMappingDriverChain($settings, $configuration); $this->registerPaths($settings, $configuration); $this->setRepositoryFactory($settings, $configuration); $configuration->setDefaultRepositoryClassName(array_get($settings, 'repository', EntityRepository::class)); $manager = EntityManager::create($connection, $configuration); $manager = $this->decorateManager($settings, $manager); $this->setLogger($manager, $configuration); $this->registerListeners($settings, $manager); $this->registerSubscribers($settings, $manager); $this->registerFilters($settings, $configuration, $manager); return $manager; }
protected function mockMeta() { $this->mockORMConfiguration(); $this->meta = m::mock(MetaDataManager::class); $this->meta->shouldReceive('driver')->once()->andReturn($this->configuration); }
public function test_a_string_class_can_be_use_as_extend() { MetaDataManager::extend('custom3', StubMetaData::class); $driver = MetaDataManager::resolve('custom3'); $this->assertEquals('stub', $driver); }
/** * Register the meta data drivers */ protected function setupMetaData() { MetaDataManager::registerDrivers($this->app->config->get('doctrine.meta.drivers', []), $this->app->config->get('doctrine.dev', false)); MetaDataManager::resolved(function (Configuration $configuration) { // Debugbar if ($this->app->config->get('doctrine.debugbar', false) === true) { $debugStack = new DebugStack(); $configuration->setSQLLogger($debugStack); $this->app['debugbar']->addCollector(new DoctrineCollector($debugStack)); } // Automatically make table, column names, etc. like Laravel $configuration->setNamingStrategy($this->app->make(LaravelNamingStrategy::class)); // Custom functions $configuration->setCustomDatetimeFunctions($this->app->config->get('doctrine.custom_datetime_functions')); $configuration->setCustomNumericFunctions($this->app->config->get('doctrine.custom_numeric_functions')); $configuration->setCustomStringFunctions($this->app->config->get('doctrine.custom_string_functions')); // Second level caching if ($this->app->config->get('cache.second_level', false)) { $configuration->setSecondLevelCacheEnabled(true); $cacheConfig = $configuration->getSecondLevelCacheConfiguration(); $cacheConfig->setCacheFactory(new DefaultCacheFactory($cacheConfig->getRegionsConfiguration(), CacheManager::resolve($this->app->config->get('cache.default')))); } }); }