Ejemplo n.º 1
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;
 }
Ejemplo 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 WebExtension($parameterBag->get('kernel.bundle_dirs'), $parameterBag->get('kernel.bundles')));
     $dirs = array('%kernel.root_dir%/views/%%bundle%%/%%controller%%/%%name%%%%format%%.%%renderer%%');
     foreach ($parameterBag->get('kernel.bundle_dirs') as $dir) {
         $dirs[] = $dir . '/%%bundle%%/Resources/views/%%controller%%/%%name%%%%format%%.%%renderer%%';
     }
     $parameterBag->set('templating.loader.filesystem.path', $dirs);
     $container = new ContainerBuilder();
     if ($parameterBag->get('kernel.debug')) {
         $loader = new XmlFileLoader($container, __DIR__ . '/Resources/config');
         $loader->load('debug.xml');
     }
     return $container;
 }
Ejemplo n.º 3
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 DoctrineExtension($parameterBag->get('kernel.bundle_dirs'), $parameterBag->get('kernel.bundles'), $parameterBag->get('kernel.cache_dir')));
 }
 public function testEntityManagerMemcacheMetadataCacheDriverConfiguration()
 {
     $container = new ContainerBuilder();
     $loader = $this->getDoctrineExtensionLoader();
     $container->registerExtension($loader);
     $this->loadFromFile($container, 'orm_service_simple_single_entity_manager');
     $container->freeze();
     $definition = $container->getDefinition('doctrine.orm.default_metadata_cache');
     $this->assertEquals('Doctrine\\Common\\Cache\\MemcacheCache', $definition->getClass());
     $calls = $definition->getMethodCalls();
     $this->assertEquals('setMemcache', $calls[0][0]);
     $this->assertEquals('doctrine.orm.default_memcache_instance', (string) $calls[0][1][0]);
     $definition = $container->getDefinition('doctrine.orm.default_memcache_instance');
     $this->assertEquals('Memcache', $definition->getClass());
     $calls = $definition->getMethodCalls();
     $this->assertEquals('connect', $calls[0][0]);
     $this->assertEquals('localhost', $calls[0][1][0]);
     $this->assertEquals(11211, $calls[0][1][1]);
 }
Ejemplo n.º 5
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 ZendExtension());
 }
Ejemplo n.º 6
0
 public function testExtensions()
 {
     $container = new ContainerBuilder();
     $container->registerExtension(new \ProjectExtension());
     $container->registerExtension(new \ProjectWithXsdExtension());
     $loader = new ProjectLoader2($container, self::$fixturesPath . '/xml');
     // extension without an XSD
     $loader->load('extensions/services1.xml');
     $container->freeze();
     $services = $container->getDefinitions();
     $parameters = $container->getParameterBag()->all();
     $this->assertTrue(isset($services['project.service.bar']), '->load() parses extension elements');
     $this->assertTrue(isset($parameters['project.parameter.bar']), '->load() parses extension elements');
     $this->assertEquals('BAR', $services['project.service.foo']->getClass(), '->load() parses extension elements');
     $this->assertEquals('BAR', $parameters['project.parameter.foo'], '->load() parses extension elements');
     // extension with an XSD
     $container = new ContainerBuilder();
     $container->registerExtension(new \ProjectExtension());
     $container->registerExtension(new \ProjectWithXsdExtension());
     $loader = new ProjectLoader2($container, self::$fixturesPath . '/xml');
     $loader->load('extensions/services2.xml');
     $container->freeze();
     $services = $container->getDefinitions();
     $parameters = $container->getParameterBag()->all();
     $this->assertTrue(isset($services['project.service.bar']), '->load() parses extension elements');
     $this->assertTrue(isset($parameters['project.parameter.bar']), '->load() parses extension elements');
     $this->assertEquals('BAR', $services['project.service.foo']->getClass(), '->load() parses extension elements');
     $this->assertEquals('BAR', $parameters['project.parameter.foo'], '->load() parses extension elements');
     $loader = new ProjectLoader2(new ContainerBuilder(), self::$fixturesPath . '/xml');
     // extension with an XSD (does not validate)
     try {
         $loader->load('extensions/services3.xml');
         $this->fail('->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
     } catch (\Exception $e) {
         $this->assertInstanceOf('\\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
         $this->assertRegexp('/The attribute \'bar\' is not allowed/', $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
     }
     // non-registered extension
     try {
         $loader->load('extensions/services4.xml');
         $this->fail('->load() throws an InvalidArgumentException if the tag is not valid');
     } catch (\Exception $e) {
         $this->assertInstanceOf('\\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the tag is not valid');
         $this->assertStringStartsWith('There is no extension able to load the configuration for "project:bar" (in', $e->getMessage(), '->load() throws an InvalidArgumentException if the tag is not valid');
     }
     // non-existent tag for a known extension
     try {
         $loader->load('extensions/services5.xml');
         $this->fail('->load() throws an InvalidArgumentException if a tag is not valid for a given extension');
     } catch (\Exception $e) {
         $this->assertInstanceOf('\\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if a tag is not valid for a given extension');
         $this->assertStringStartsWith('The tag "projectwithxsd:foobar" is not defined in the "projectwithxsd" extension.', $e->getMessage(), '->load() throws an InvalidArgumentException if a tag is not valid for a given extension');
     }
 }
Ejemplo n.º 7
0
 public function testExtensions()
 {
     $container = new ContainerBuilder();
     $container->registerExtension(new \ProjectExtension());
     $loader = new ProjectLoader3($container, self::$fixturesPath . '/yaml');
     $loader->load('services10.yml');
     $container->freeze();
     $services = $container->getDefinitions();
     $parameters = $container->getParameterBag()->all();
     $this->assertTrue(isset($services['project.service.bar']), '->load() parses extension elements');
     $this->assertTrue(isset($parameters['project.parameter.bar']), '->load() parses extension elements');
     $this->assertEquals('BAR', $services['project.service.foo']->getClass(), '->load() parses extension elements');
     $this->assertEquals('BAR', $parameters['project.parameter.foo'], '->load() parses extension elements');
     try {
         $loader->load('services11.yml');
         $this->fail('->load() throws an InvalidArgumentException if the tag is not valid');
     } catch (\Exception $e) {
         $this->assertInstanceOf('\\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the tag is not valid');
         $this->assertStringStartsWith('There is no extension able to load the configuration for "foobar.foobar" (in', $e->getMessage(), '->load() throws an InvalidArgumentException if the tag is not valid');
     }
     try {
         $loader->load('services12.yml');
         $this->fail('->load() throws an InvalidArgumentException if an extension is not loaded');
     } catch (\Exception $e) {
         $this->assertInstanceOf('\\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if an extension is not loaded');
         $this->assertStringStartsWith('The "foobar" tag is not valid (in', $e->getMessage(), '->load() throws an InvalidArgumentException if an extension is not loaded');
     }
 }
Ejemplo n.º 8
0
 /**
  * @covers Symfony\Components\DependencyInjection\ContainerBuilder::registerExtension
  * @covers Symfony\Components\DependencyInjection\ContainerBuilder::getExtension
  */
 public function testExtension()
 {
     $container = new ContainerBuilder();
     $container->registerExtension($extension = new \ProjectExtension());
     $this->assertTrue($container->getExtension('project') === $extension, '->registerExtension() registers an extension');
 }