Example #1
0
 /**
  * Create a new configuration
  *
  * @param array $config
  * @param bool $devMode
  *
  * @return Configuration
  */
 public static function create(array $config, $devMode = true)
 {
     $resolver = self::buildOptionsResolver();
     $config = $resolver->resolve($config);
     $conf = new self();
     $map = new IdentityMap();
     $metadataRegistry = self::buildMetadataregistry($config, $devMode);
     foreach ($metadataRegistry->getMetadatas() as $meta) {
         $map->addClass($meta->getClass());
         if ($meta->hasAlias()) {
             $map->addAlias($meta->getAlias(), $meta->getClass());
         }
     }
     $proxyConfig = new ProxyConfig();
     if ($devMode === true) {
         $path = $config['cache'] . self::PROXIES_DIRECTORY;
         $filesystem = new Filesystem();
         if (!$filesystem->exists($path)) {
             $filesystem->mkdir($path);
         }
         $proxyConfig->setProxiesTargetDir($path);
         spl_autoload_register($proxyConfig->getProxyAutoloader());
     }
     $conf->setIdentityMap($map)->setMetadataRegistry($metadataRegistry)->setProxyFactory(new LazyLoadingGhostFactory($proxyConfig));
     return $conf;
 }