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) {

                $manager = EntityManager::create(
                    ConnectionManager::resolve(array_get($settings, 'connection')),
                    MetaDataManager::resolve(array_get($settings, 'meta'))
                );

                $configuration = $manager->getConfiguration();

                // 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);
                    }
                }

                // 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);
                }

                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];
    }
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) {

                $manager = EntityManager::create(
                    ConnectionManager::resolve(array_get($settings, 'connection')),
                    MetaDataManager::resolve(array_get($settings, 'meta'))
                );

                $configuration = $manager->getConfiguration();

                // 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);
                    }
                }

                // 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);
                }

                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];
    }
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 ) { $ manager = EntityManager :: create ( ConnectionManager :: resolve ( array_get ( $ settings , 'connection' ) ) , MetaDataManager :: resolve ( array_get ( $ settings , 'meta' ) ) ) ; $ configuration = $ manager -> getConfiguration ( ) ; // 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 ) ; } } // 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 ) ; } 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 ] ; }
Setup the entity managers
@return array
Setup the entity managers