Пример #1
0
 public function test_can_replace_an_existing_driver()
 {
     $this->manager->extend('annotations', function () {
         return 'configuration';
     });
     $this->assertEquals('configuration', $this->manager->driver('annotations'));
 }
Пример #2
0
 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);
 }
Пример #3
0
 /**
  * @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;
 }
Пример #4
0
 /**
  * @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;
 }
Пример #5
0
 protected function mockMeta()
 {
     $this->mockORMConfiguration();
     $this->meta = m::mock(MetaDataManager::class);
     $this->meta->shouldReceive('driver')->once()->andReturn($this->configuration);
 }
Пример #6
0
 public function test_a_string_class_can_be_use_as_extend()
 {
     MetaDataManager::extend('custom3', StubMetaData::class);
     $driver = MetaDataManager::resolve('custom3');
     $this->assertEquals('stub', $driver);
 }
Пример #7
0
 /**
  * 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'))));
         }
     });
 }