コード例 #1
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);
 }
コード例 #2
0
 /**
  * Setup the entity managers
  * @return array
  */
 protected function setUpEntityManagers()
 {
     $managers = [];
     $connections = [];
     foreach ($this->config['managers'] as $manager => $settings) {
         $managerName = IlluminateRegistry::getManagerNamePrefix() . $manager;
         $connectionName = IlluminateRegistry::getConnectionNamePrefix() . $manager;
         // Bind manager
         $this->app->singleton($managerName, function () use($settings) {
             $configuration = MetaDataManager::resolve(array_get($settings, 'meta'));
             // Paths
             $configuration->getMetadataDriverImpl()->addPaths(array_get($settings, 'paths', []));
             // Repository
             $configuration->setDefaultRepositoryClassName(array_get($settings, 'repository', \Doctrine\ORM\EntityRepository::class));
             $configuration->setAutoGenerateProxyClasses(array_get($settings, 'proxies.auto_generate', false));
             if ($namespace = array_get($settings, 'proxies.namespace', false)) {
                 $configuration->setProxyNamespace($namespace);
             }
             $manager = EntityManager::create(ConnectionManager::resolve(array_get($settings, 'connection')), $configuration);
             // Listeners
             if (isset($settings['events']['listeners'])) {
                 foreach ($settings['events']['listeners'] as $event => $listener) {
                     $manager->getEventManager()->addEventListener($event, $listener);
                 }
             }
             // Subscribers
             if (isset($settings['events']['subscribers'])) {
                 foreach ($settings['events']['subscribers'] as $subscriber) {
                     $manager->getEventManager()->addEventSubscriber($subscriber);
                 }
             }
             // Filters
             if (isset($settings['filters'])) {
                 foreach ($settings['filters'] as $name => $filter) {
                     $configuration->getMetadataDriverImpl()->addFilter($name, $filter);
                     $manager->getFilters()->enable($name);
                 }
             }
             return $manager;
         });
         // Bind connection
         $this->app->singleton($connectionName, function ($app) use($manager) {
             $app->make(IlluminateRegistry::getManagerNamePrefix() . $manager)->getConnection();
         });
         $managers[$manager] = $manager;
         $connections[$manager] = $manager;
     }
     return [$managers, $connections];
 }