Exemplo n.º 1
0
 public function barLoad(array $config, ContainerBuilder $configuration)
 {
     $configuration->setDefinition('project.service.bar', new Definition('FooClass'));
     $configuration->setParameter('project.parameter.bar', isset($config['foo']) ? $config['foo'] : 'foobar');
     $configuration->setDefinition('project.service.foo', new Definition('FooClass'));
     $configuration->setParameter('project.parameter.foo', isset($config['foo']) ? $config['foo'] : 'foobar');
     return $configuration;
 }
Exemplo n.º 2
0
 /**
  * Customizes the Container instance.
  *
  * @param \Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface $parameterBag A ParameterBagInterface instance
  *
  * @return \Symfony\Components\DependencyInjection\ContainerBuilder A ContainerBuilder instance
  */
 public function buildContainer(ParameterBagInterface $parameterBag)
 {
     ContainerBuilder::registerExtension(new KernelExtension());
     $container = new ContainerBuilder();
     $loader = new XmlFileLoader($container, array(__DIR__ . '/../Resources/config', __DIR__ . '/Resources/config'));
     $loader->load('services.xml');
     if ($parameterBag->get('kernel.debug')) {
         $loader->load('debug.xml');
         $container->setDefinition('event_dispatcher', $container->findDefinition('debug.event_dispatcher'));
     }
     return $container;
 }
Exemplo n.º 3
0
 /**
  * Gets an entity manager cache driver definition for metadata, query and result caches.
  *
  * @param array $entityManager
  * @param string $cacheDriver
  * @param ContainerBuilder $container
  * @return Definition $cacheDef
  */
 protected function getEntityManagerCacheDefinition(array $entityManager, $cacheDriver, ContainerBuilder $container)
 {
     $type = is_array($cacheDriver) && isset($cacheDriver['type']) ? $cacheDriver['type'] : $cacheDriver;
     if ($type === 'memcache') {
         $memcacheClass = isset($cacheDriver['class']) ? $cacheDriver['class'] : '%' . sprintf('doctrine.orm.cache.%s_class', $type) . '%';
         $cacheDef = new Definition($memcacheClass);
         $memcacheHost = isset($cacheDriver['host']) ? $cacheDriver['host'] : '%doctrine.orm.cache.memcache_host%';
         $memcachePort = isset($cacheDriver['port']) ? $cacheDriver['port'] : '%doctrine.orm.cache.memcache_port%';
         $memcacheInstanceClass = isset($cacheDriver['instance_class']) ? $cacheDriver['instance_class'] : '%doctrine.orm.cache.memcache_instance_class%';
         $memcacheInstance = new Definition($memcacheInstanceClass);
         $memcacheInstance->addMethodCall('connect', array($memcacheHost, $memcachePort));
         $container->setDefinition(sprintf('doctrine.orm.%s_memcache_instance', $entityManager['name']), $memcacheInstance);
         $cacheDef->addMethodCall('setMemcache', array(new Reference(sprintf('doctrine.orm.%s_memcache_instance', $entityManager['name']))));
     } else {
         $cacheDef = new Definition('%' . sprintf('doctrine.orm.cache.%s_class', $type) . '%');
     }
     return $cacheDef;
 }
Exemplo n.º 4
0
 /**
  * Loads the templating configuration.
  *
  * @param array                                                        $config        An array of configuration settings
  * @param \Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder instance
  */
 public function templatingLoad($config, ContainerBuilder $container)
 {
     if (!$container->hasDefinition('templating')) {
         $loader = new XmlFileLoader($container, __DIR__ . '/../Resources/config');
         $loader->load($this->resources['templating']);
     }
     if (array_key_exists('escaping', $config)) {
         $container->setParameter('templating.output_escaper', $config['escaping']);
     }
     if (array_key_exists('assets_version', $config)) {
         $container->setParameter('templating.assets.version', $config['assets_version']);
     }
     // path for the filesystem loader
     if (isset($config['path'])) {
         $container->setParameter('templating.loader.filesystem.path', $config['path']);
     }
     // loaders
     if (isset($config['loader'])) {
         $loaders = array();
         $ids = is_array($config['loader']) ? $config['loader'] : array($config['loader']);
         foreach ($ids as $id) {
             $loaders[] = new Reference($id);
         }
         if (1 === count($loaders)) {
             $container->setAlias('templating.loader', (string) $loaders[0]);
         } else {
             $container->getDefinition('templating.loader.chain')->addArgument($loaders);
             $container->setAlias('templating.loader', 'templating.loader.chain');
         }
     }
     // cache?
     $container->setParameter('templating.loader.cache.path', null);
     if (isset($config['cache'])) {
         // wrap the loader with some cache
         $container->setDefinition('templating.loader.wrapped', $container->findDefinition('templating.loader'));
         $container->setDefinition('templating.loader', $container->getDefinition('templating.loader.cache'));
         $container->setParameter('templating.loader.cache.path', $config['cache']);
     }
 }
Exemplo n.º 5
0
 /**
  * Loads the configured document manager metadata cache driver.
  *
  * @param array $config        A configured document manager array
  * @param ContainerBuilder $container A ContainerBuilder instance
  */
 protected function loadDocumentManagerMetadataCacheDriver(array $documentManager, ContainerBuilder $container)
 {
     $metadataCacheDriver = $container->getParameter('doctrine.odm.mongodb.metadata_cache_driver');
     $dmMetadataCacheDriver = isset($documentManager['metadata_cache_driver']) ? $documentManager['metadata_cache_driver'] : $metadataCacheDriver;
     $type = is_array($dmMetadataCacheDriver) && isset($dmMetadataCacheDriver['type']) ? $dmMetadataCacheDriver['type'] : $dmMetadataCacheDriver;
     if ($type === 'memcache') {
         $memcacheClass = isset($dmMetadataCacheDriver['class']) ? $dmMetadataCacheDriver['class'] : '%' . sprintf('doctrine.odm.mongodb.cache.%s_class', $type) . '%';
         $cacheDef = new Definition($memcacheClass);
         $memcacheHost = isset($dmMetadataCacheDriver['host']) ? $dmMetadataCacheDriver['host'] : '%doctrine.odm.mongodb.cache.memcache_host%';
         $memcachePort = isset($dmMetadataCacheDriver['port']) ? $dmMetadataCacheDriver['port'] : '%doctrine.odm.mongodb.cache.memcache_port%';
         $memcacheInstanceClass = isset($dmMetadataCacheDriver['instance_class']) ? $dmMetadataCacheDriver['instance_class'] : '%doctrine.odm.mongodb.cache.memcache_instance_class%';
         $memcacheInstance = new Definition($memcacheInstanceClass);
         $memcacheInstance->addMethodCall('connect', array($memcacheHost, $memcachePort));
         $container->setDefinition(sprintf('doctrine.odm.mongodb.%s_memcache_instance', $documentManager['name']), $memcacheInstance);
         $cacheDef->addMethodCall('setMemcache', array(new Reference(sprintf('doctrine.odm.mongodb.%s_memcache_instance', $documentManager['name']))));
     } else {
         $cacheDef = new Definition('%' . sprintf('doctrine.odm.mongodb.cache.%s_class', $type) . '%');
     }
     $container->setDefinition(sprintf('doctrine.odm.mongodb.%s_metadata_cache', $documentManager['name']), $cacheDef);
 }
Exemplo n.º 6
0
 /**
  * @covers Symfony\Components\DependencyInjection\ContainerBuilder::findDefinition
  */
 public function testFindDefinition()
 {
     $container = new ContainerBuilder();
     $container->setDefinition('foo', $definition = new Definition('FooClass'));
     $container->setAlias('bar', 'foo');
     $container->setAlias('foobar', 'bar');
     $this->assertEquals($definition, $container->findDefinition('foobar'), '->findDefinition() returns a Definition');
 }