/**
  * @param array $options
  * @return \Doctrine\ORM\EntityManager
  */
 protected function _createEntityManager()
 {
     $options = $this->_options;
     $cache = $this->_setupCache($options);
     if (!isset($options['proxyDir']) || !file_exists($options['proxyDir'])) {
         throw new ZendX_Doctrine2_Exception("No Doctrine2 'proxyDir' option was given, but is required.");
     }
     if (!isset($options['proxyNamespace'])) {
         $options['proxyNamespace'] = 'MyProject/Proxies';
     }
     if (!isset($options['autoGenerateProxyClasses'])) {
         $options['autoGenerateProxyClasses'] = true;
     }
     if (!isset($options['useCExtension'])) {
         $options['useCExtension'] = false;
     }
     $eventManager = new \Doctrine\Common\EventManager();
     $config = new \Doctrine\ORM\Configuration();
     $config->setMetadataCacheImpl($cache);
     $config->setQueryCacheImpl($cache);
     $config->setProxyDir($options['proxyDir']);
     $config->setProxyNamespace($options['proxyNamespace']);
     $config->setUseCExtension((bool) $options['useCExtension']);
     if (!isset($options['connectionOptions']) || !is_array($options['connectionOptions'])) {
         throw new ZendX_Doctrine2_Exception("Invalid Doctrine DBAL Connection Options given.");
     }
     $connectionOptions = $options['connectionOptions'];
     if (isset($options['sqllogger'])) {
         if (is_string($options['sqllogger']) && class_exists($options['sqllogger'])) {
             $logger = new $options['sqllogger']();
             if (!$logger instanceof \Doctrine\DBAL\Logging\SqlLogger) {
                 throw new ZendX_Doctrine2_Exception("Invalid SqlLogger class specified, has to implement \\Doctrine\\DBAL\\Logging\\SqlLogger");
             }
             $config->setSqlLogger($logger);
         } else {
             throw new ZendX_Doctrine2_Exception("Invalid SqlLogger configuration specified, have to give class string.");
         }
     }
     $conn = \Doctrine\DBAL\DriverManager::getConnection($connectionOptions, $config, $eventManager);
     $this->_setupMetadataDriver($options, $config, $cache, $conn);
     $em = \Doctrine\ORM\EntityManager::create($conn, $config, $eventManager);
     $registry = Zend_Registry::getInstance();
     $registry->em = $em;
     return $em;
 }