diff --git a/src/Symfony/Bundle/DoctrineBundle/DependencyInjection/DoctrineExtension.php b/src/Symfony/Bundle/DoctrineBundle/DependencyInjection/DoctrineExtension.php index 82f691f6be..d876b43fc0 100644 --- a/src/Symfony/Bundle/DoctrineBundle/DependencyInjection/DoctrineExtension.php +++ b/src/Symfony/Bundle/DoctrineBundle/DependencyInjection/DoctrineExtension.php @@ -4,7 +4,7 @@ namespace Symfony\Bundle\DoctrineBundle\DependencyInjection; use Symfony\Components\DependencyInjection\Loader\LoaderExtension; use Symfony\Components\DependencyInjection\Loader\XmlFileLoader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Definition; use Symfony\Components\DependencyInjection\Reference; @@ -54,13 +54,13 @@ class DoctrineExtension extends LoaderExtension * * * @param array $config An array of configuration settings - * @param \Symfony\Components\DependencyInjection\BuilderConfiguration $configuration A BuilderConfiguration instance + * @param \Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder instance */ - public function dbalLoad($config, BuilderConfiguration $configuration) + public function dbalLoad($config, ContainerBuilder $container) { - if (!$configuration->hasDefinition('doctrine.dbal.logger')) { + if (!$container->hasDefinition('doctrine.dbal.logger')) { $loader = new XmlFileLoader(__DIR__.'/../Resources/config'); - $configuration->merge($loader->load($this->resources['dbal'])); + $container->merge($loader->load($this->resources['dbal'])); } $defaultConnection = array( @@ -75,9 +75,9 @@ class DoctrineExtension extends LoaderExtension 'options' => array() ); - $defaultConnectionName = isset($config['default_connection']) ? $config['default_connection'] : $configuration->getParameter('doctrine.dbal.default_connection'); - $configuration->setAlias('database_connection', null !== $this->alias ? $this->alias : sprintf('doctrine.dbal.%s_connection', $defaultConnectionName)); - $configuration->setParameter('doctrine.dbal.default_connection', $defaultConnectionName); + $defaultConnectionName = isset($config['default_connection']) ? $config['default_connection'] : $container->getParameter('doctrine.dbal.default_connection'); + $container->setAlias('database_connection', null !== $this->alias ? $this->alias : sprintf('doctrine.dbal.%s_connection', $defaultConnectionName)); + $container->setParameter('doctrine.dbal.default_connection', $defaultConnectionName); $connections = array(); if (isset($config['connections'])) { @@ -90,25 +90,25 @@ class DoctrineExtension extends LoaderExtension foreach ($connections as $name => $connection) { // previously registered? - if ($configuration->hasDefinition(sprintf('doctrine.dbal.%s_connection', $name))) { - $driverDef = $configuration->getDefinition(sprintf('doctrine.dbal.%s_connection', $name)); + if ($container->hasDefinition(sprintf('doctrine.dbal.%s_connection', $name))) { + $driverDef = $container->getDefinition(sprintf('doctrine.dbal.%s_connection', $name)); $arguments = $driverDef->getArguments(); $driverOptions = $arguments[0]; } else { $connection = array_merge($defaultConnection, $connection); - $configurationClass = isset($connection['configuration_class']) ? $connection['configuration_class'] : 'Doctrine\DBAL\Configuration'; - $configurationDef = new Definition($configurationClass); - $configurationDef->addMethodCall('setSqlLogger', array(new Reference('doctrine.dbal.logger'))); - $configuration->setDefinition(sprintf('doctrine.dbal.%s_connection.configuration', $name), $configurationDef); + $containerClass = isset($connection['configuration_class']) ? $connection['configuration_class'] : 'Doctrine\DBAL\Configuration'; + $containerDef = new Definition($containerClass); + $containerDef->addMethodCall('setSqlLogger', array(new Reference('doctrine.dbal.logger'))); + $container->setDefinition(sprintf('doctrine.dbal.%s_connection.configuration', $name), $containerDef); $eventManagerDef = new Definition($connection['event_manager_class']); - $configuration->setDefinition(sprintf('doctrine.dbal.%s_connection.event_manager', $name), $eventManagerDef); + $container->setDefinition(sprintf('doctrine.dbal.%s_connection.event_manager', $name), $eventManagerDef); $driverOptions = array(); $driverDef = new Definition('Doctrine\DBAL\DriverManager'); $driverDef->setFactoryMethod('getConnection'); - $configuration->setDefinition(sprintf('doctrine.dbal.%s_connection', $name), $driverDef); + $container->setDefinition(sprintf('doctrine.dbal.%s_connection', $name), $driverDef); } if (isset($connection['driver'])) { @@ -138,35 +138,35 @@ class DoctrineExtension extends LoaderExtension * Loads the Doctrine ORM configuration. * * @param array $config An array of configuration settings - * @param \Symfony\Components\DependencyInjection\BuilderConfiguration $configuration A BuilderConfiguration instance + * @param \Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder instance */ - public function ormLoad($config, BuilderConfiguration $configuration) + public function ormLoad($config, ContainerBuilder $container) { $loader = new XmlFileLoader(__DIR__.'/../Resources/config'); - $configuration->merge($loader->load($this->resources['orm'])); + $container->merge($loader->load($this->resources['orm'])); if (isset($config['default_entity_manager'])) { - $configuration->getParameter('doctrine.orm.default_entity_manager', $config['default_entity_manager']); + $container->getParameter('doctrine.orm.default_entity_manager', $config['default_entity_manager']); } - $defaultEntityManager = $configuration->getParameter('doctrine.orm.default_entity_manager'); + $defaultEntityManager = $container->getParameter('doctrine.orm.default_entity_manager'); foreach (array('metadata_driver', 'cache_driver') as $key) { if (isset($config[$key])) { - $configuration->setParameter('doctrine.orm.'.$key, $config[$key]); + $container->setParameter('doctrine.orm.'.$key, $config[$key]); } } $config['entity_managers'] = isset($config['entity_managers']) ? $config['entity_managers'] : array($defaultEntityManager => array()); foreach ($config['entity_managers'] as $name => $connection) { $ormConfigDef = new Definition('Doctrine\ORM\Configuration'); - $configuration->setDefinition(sprintf('doctrine.orm.%s_configuration', $name), $ormConfigDef); + $container->setDefinition(sprintf('doctrine.orm.%s_configuration', $name), $ormConfigDef); $drivers = array('metadata', 'query', 'result'); foreach ($drivers as $driver) { - $definition = $configuration->getDefinition(sprintf('doctrine.orm.cache.%s', $configuration->getParameter('doctrine.orm.cache_driver'))); + $definition = $container->getDefinition(sprintf('doctrine.orm.cache.%s', $container->getParameter('doctrine.orm.cache_driver'))); $clone = clone $definition; $clone->addMethodCall('setNamespace', array(sprintf('doctrine_%s_', $driver))); - $configuration->setDefinition(sprintf('doctrine.orm.%s_cache', $driver), $clone); + $container->setDefinition(sprintf('doctrine.orm.%s_cache', $driver), $clone); } // configure metadata driver for each bundle based on the type of mapping files found @@ -205,7 +205,7 @@ class DoctrineExtension extends LoaderExtension } $ormConfigDef->addMethodCall('setEntityNamespaces', array($aliasMap)); - $configuration->setDefinition('doctrine.orm.metadata_driver', $mappingDriverDef); + $container->setDefinition('doctrine.orm.metadata_driver', $mappingDriverDef); $methods = array( 'setMetadataCacheImpl' => new Reference('doctrine.orm.metadata_cache'), @@ -231,24 +231,24 @@ class DoctrineExtension extends LoaderExtension $ormEmDef = new Definition('Doctrine\ORM\EntityManager', $ormEmArgs); $ormEmDef->setFactoryMethod('create'); - $configuration->setDefinition( + $container->setDefinition( sprintf('doctrine.orm.%s_entity_manager', $name), $ormEmDef ); if ($name == $defaultEntityManager) { - $configuration->setAlias( + $container->setAlias( 'doctrine.orm.entity_manager', sprintf('doctrine.orm.%s_entity_manager', $name) ); } } - $configuration->setAlias( + $container->setAlias( 'doctrine.orm.cache', sprintf( 'doctrine.orm.cache.%s', - $configuration->getParameter('doctrine.orm.cache_driver') + $container->getParameter('doctrine.orm.cache_driver') ) ); } diff --git a/src/Symfony/Bundle/DoctrineBundle/DoctrineBundle.php b/src/Symfony/Bundle/DoctrineBundle/DoctrineBundle.php index 00dc34a727..908ccd9ef6 100644 --- a/src/Symfony/Bundle/DoctrineBundle/DoctrineBundle.php +++ b/src/Symfony/Bundle/DoctrineBundle/DoctrineBundle.php @@ -32,7 +32,7 @@ class DoctrineBundle extends Bundle * * @param \Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface $parameterBag A ParameterBagInterface instance * - * @return \Symfony\Components\DependencyInjection\BuilderConfiguration A BuilderConfiguration instance + * @return \Symfony\Components\DependencyInjection\ContainerBuilder A ContainerBuilder instance */ public function buildContainer(ParameterBagInterface $parameterBag) { diff --git a/src/Symfony/Bundle/DoctrineMongoDBBundle/DependencyInjection/MongoDBExtension.php b/src/Symfony/Bundle/DoctrineMongoDBBundle/DependencyInjection/MongoDBExtension.php index 363bd13f24..6a472e0ff0 100755 --- a/src/Symfony/Bundle/DoctrineMongoDBBundle/DependencyInjection/MongoDBExtension.php +++ b/src/Symfony/Bundle/DoctrineMongoDBBundle/DependencyInjection/MongoDBExtension.php @@ -4,7 +4,7 @@ namespace Symfony\Bundle\DoctrineMongoDBBundle\DependencyInjection; use Symfony\Components\DependencyInjection\Loader\LoaderExtension; use Symfony\Components\DependencyInjection\Loader\XmlFileLoader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Reference; use Symfony\Components\DependencyInjection\Definition; use Symfony\Components\DependencyInjection\Resource\FileResource; @@ -34,36 +34,36 @@ class MongoDBExtension extends LoaderExtension * Loads the MongoDB configuration. * * @param array $config An array of configuration settings - * @param \Symfony\Components\DependencyInjection\BuilderConfiguration $configuration A BuilderConfiguration instance + * @param \Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder instance */ - public function mongodbLoad($config, BuilderConfiguration $configuration) + public function mongodbLoad($config, ContainerBuilder $container) { $loader = new XmlFileLoader(__DIR__.'/../Resources/config'); - $configuration->merge($loader->load($this->resources['mongodb'])); + $container->merge($loader->load($this->resources['mongodb'])); - if (!$configuration->hasDefinition('doctrine.odm.mongodb.document_manager')) { + if (!$container->hasDefinition('doctrine.odm.mongodb.document_manager')) { - $configuration->setParameter('doctrine.odm.mongodb.mapping_dirs', $this->findBundleSubpaths('Resources/config/doctrine/metadata', $configuration)); - $configuration->setParameter('doctrine.odm.mongodb.document_dirs', $this->findBundleSubpaths('Document', $configuration)); + $container->setParameter('doctrine.odm.mongodb.mapping_dirs', $this->findBundleSubpaths('Resources/config/doctrine/metadata', $container)); + $container->setParameter('doctrine.odm.mongodb.document_dirs', $this->findBundleSubpaths('Document', $container)); - $configuration->setDefinition('doctrine.odm.mongodb.metadata', $this->buildMetadataDefinition($configuration)); + $container->setDefinition('doctrine.odm.mongodb.metadata', $this->buildMetadataDefinition($container)); } foreach (array('host', 'port', 'database') as $key) { if (isset($config[$key])) { - $configuration->setParameter('doctrine.odm.mongodb.default_'.$key, $config[$key]); + $container->setParameter('doctrine.odm.mongodb.default_'.$key, $config[$key]); } } foreach (array('proxy_dir', 'auto_generate_proxy_classes') as $key) { if (isset($config[$key])) { - $configuration->setParameter('doctrine.odm.mongodb.'.$key, $config[$key]); + $container->setParameter('doctrine.odm.mongodb.'.$key, $config[$key]); } } foreach (array('cache', 'metadata') as $key) { if (isset($config[$key])) { - $configuration->setAlias('doctrine.odm.mongodb.'.$key, 'doctrine.odm.mongodb.'.$key.'.'.$config[$key]); + $container->setAlias('doctrine.odm.mongodb.'.$key, 'doctrine.odm.mongodb.'.$key.'.'.$config[$key]); } } } @@ -72,24 +72,24 @@ class MongoDBExtension extends LoaderExtension * Finds existing bundle subpaths. * * @param string $path A subpath to check for - * @param Symfony\Components\DependencyInjection\BuilderConfiguration $configuration A builder configuration + * @param Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder configuration * * @return array An array of absolute directory paths */ - protected function findBundleSubpaths($path, BuilderConfiguration $configuration) + protected function findBundleSubpaths($path, ContainerBuilder $container) { $dirs = array(); foreach ($this->bundles as $bundle) { $reflection = new \ReflectionClass($bundle); if (is_dir($dir = dirname($reflection->getFilename()).'/'.$path)) { $dirs[] = $dir; - $configuration->addResource(new FileResource($dir)); + $container->addResource(new FileResource($dir)); } else { // add the closest existing parent directory as a file resource do { $dir = dirname($dir); } while (!is_dir($dir)); - $configuration->addResource(new FileResource($dir)); + $container->addResource(new FileResource($dir)); } } @@ -99,17 +99,17 @@ class MongoDBExtension extends LoaderExtension /** * Detects and builds the appropriate metadata driver for each bundle. * - * @param Symfony\Components\DependencyInjection\BuilderConfiguration $configuration A builder configuration + * @param Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder configuration * * @return Symfony\Components\DependencyInjection\Definition A definition for the metadata service */ - protected function buildMetadataDefinition(BuilderConfiguration $configuration) + protected function buildMetadataDefinition(ContainerBuilder $container) { $definition = new Definition('%doctrine.odm.mongodb.metadata.chain_class%'); foreach ($this->bundles as $bundle) { $reflection = new \ReflectionClass($bundle); - if ($driver = static::detectMetadataDriver(dirname($reflection->getFilename()), $configuration)) { + if ($driver = static::detectMetadataDriver(dirname($reflection->getFilename()), $container)) { $definition->addMethodCall('addDriver', array( new Reference('doctrine.odm.mongodb.metadata.'.$driver), $reflection->getNamespaceName().'\\Document', @@ -124,18 +124,18 @@ class MongoDBExtension extends LoaderExtension * Detects what metadata driver to use for the supplied directory. * * @param string $dir A directory path - * @param Symfony\Components\DependencyInjection\BuilderConfiguration $configuration A builder configuration + * @param Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder configuration * * @return string|null A metadata driver short name, if one can be detected */ - static protected function detectMetadataDriver($dir, BuilderConfiguration $configuration) + static protected function detectMetadataDriver($dir, ContainerBuilder $container) { // add the closest existing directory as a resource $resource = $dir.'/Resources/config/doctrine/metadata'; while (!is_dir($resource)) { $resource = dirname($resource); } - $configuration->addResource(new FileResource($resource)); + $container->addResource(new FileResource($resource)); if (count(glob($dir.'/Resources/config/doctrine/metadata/*.xml'))) { return 'xml'; @@ -144,7 +144,7 @@ class MongoDBExtension extends LoaderExtension } // add the directory itself as a resource - $configuration->addResource(new FileResource($dir)); + $container->addResource(new FileResource($dir)); if (is_dir($dir.'/Document')) { return 'annotation'; diff --git a/src/Symfony/Bundle/DoctrineMongoDBBundle/DoctrineMongoDBBundle.php b/src/Symfony/Bundle/DoctrineMongoDBBundle/DoctrineMongoDBBundle.php index 96c16ed43f..e90b1a749e 100755 --- a/src/Symfony/Bundle/DoctrineMongoDBBundle/DoctrineMongoDBBundle.php +++ b/src/Symfony/Bundle/DoctrineMongoDBBundle/DoctrineMongoDBBundle.php @@ -21,7 +21,7 @@ class DoctrineMongoDBBundle extends Bundle * * @param \Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface $parameterBag A ParameterBagInterface instance * - * @return \Symfony\Components\DependencyInjection\BuilderConfiguration A BuilderConfiguration instance + * @return \Symfony\Components\DependencyInjection\ContainerBuilder A ContainerBuilder instance */ public function buildContainer(ParameterBagInterface $parameterBag) { diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/WebExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/WebExtension.php index 5b17e486eb..fe568c0b26 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/WebExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/WebExtension.php @@ -5,7 +5,7 @@ namespace Symfony\Bundle\FrameworkBundle\DependencyInjection; use Symfony\Components\DependencyInjection\Loader\LoaderExtension; use Symfony\Components\DependencyInjection\Loader\XmlFileLoader; use Symfony\Components\DependencyInjection\Resource\FileResource; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Reference; use Symfony\Components\DependencyInjection\Definition; @@ -48,17 +48,17 @@ class WebExtension extends LoaderExtension * Loads the web configuration. * * @param array $config An array of configuration settings - * @param \Symfony\Components\DependencyInjection\BuilderConfiguration $configuration A BuilderConfiguration instance + * @param \Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder instance */ - public function configLoad($config, BuilderConfiguration $configuration) + public function configLoad($config, ContainerBuilder $container) { - if (!$configuration->hasDefinition('controller_manager')) { + if (!$container->hasDefinition('controller_manager')) { $loader = new XmlFileLoader(__DIR__.'/../Resources/config'); - $configuration->merge($loader->load($this->resources['web'])); + $container->merge($loader->load($this->resources['web'])); } if (isset($config['ide']) && 'textmate' === $config['ide']) { - $configuration->setParameter('debug.file_link_format', 'txmt://open?url=file://%%f&line=%%l'); + $container->setParameter('debug.file_link_format', 'txmt://open?url=file://%%f&line=%%l'); } if (isset($config['toolbar']) && $config['toolbar']) { @@ -67,33 +67,33 @@ class WebExtension extends LoaderExtension if (isset($config['profiler'])) { if ($config['profiler']) { - if (!$configuration->hasDefinition('profiler')) { + if (!$container->hasDefinition('profiler')) { $loader = new XmlFileLoader(__DIR__.'/../Resources/config'); - $configuration->merge($loader->load('profiling.xml')); - $configuration->merge($loader->load('collectors.xml')); + $container->merge($loader->load('profiling.xml')); + $container->merge($loader->load('collectors.xml')); } - } elseif ($configuration->hasDefinition('profiler')) { - $configuration->getDefinition('profiling')->clearAnnotations(); + } elseif ($container->hasDefinition('profiler')) { + $container->getDefinition('profiling')->clearAnnotations(); } } // toolbar need to be registered after the profiler if (isset($config['toolbar'])) { if ($config['toolbar']) { - if (!$configuration->hasDefinition('debug.toolbar')) { + if (!$container->hasDefinition('debug.toolbar')) { $loader = new XmlFileLoader(__DIR__.'/../Resources/config'); - $configuration->merge($loader->load('toolbar.xml')); + $container->merge($loader->load('toolbar.xml')); } - } elseif ($configuration->hasDefinition('debug.toolbar')) { - $configuration->getDefinition('debug.toolbar')->clearAnnotations(); + } elseif ($container->hasDefinition('debug.toolbar')) { + $container->getDefinition('debug.toolbar')->clearAnnotations(); } } if (isset($config['validation']['enabled'])) { if ($config['validation']['enabled']) { - if (!$configuration->hasDefinition('validator')) { + if (!$container->hasDefinition('validator')) { $loader = new XmlFileLoader(__DIR__.'/../Resources/config'); - $configuration->merge($loader->load($this->resources['validation'])); + $container->merge($loader->load($this->resources['validation'])); } $xmlMappingFiles = array(); @@ -126,42 +126,42 @@ class WebExtension extends LoaderExtension } $xmlFilesLoader = new Definition( - $configuration->getParameter('validator.mapping.loader.xml_files_loader.class'), + $container->getParameter('validator.mapping.loader.xml_files_loader.class'), array($xmlMappingFiles) ); $yamlFilesLoader = new Definition( - $configuration->getParameter('validator.mapping.loader.yaml_files_loader.class'), + $container->getParameter('validator.mapping.loader.yaml_files_loader.class'), array($yamlMappingFiles) ); - $configuration->setDefinition('validator.mapping.loader.xml_files_loader', $xmlFilesLoader); - $configuration->setDefinition('validator.mapping.loader.yaml_files_loader', $yamlFilesLoader); - $configuration->setParameter('validator.message_interpolator.files', $messageFiles); + $container->setDefinition('validator.mapping.loader.xml_files_loader', $xmlFilesLoader); + $container->setDefinition('validator.mapping.loader.yaml_files_loader', $yamlFilesLoader); + $container->setParameter('validator.message_interpolator.files', $messageFiles); foreach ($xmlMappingFiles as $file) { - $configuration->addResource(new FileResource($file)); + $container->addResource(new FileResource($file)); } foreach ($yamlMappingFiles as $file) { - $configuration->addResource(new FileResource($file)); + $container->addResource(new FileResource($file)); } foreach ($messageFiles as $file) { - $configuration->addResource(new FileResource($file)); + $container->addResource(new FileResource($file)); } if (isset($config['validation']['annotations']) && $config['validation']['annotations'] === true) { - $annotationLoader = new Definition($configuration->getParameter('validator.mapping.loader.annotation_loader.class')); - $configuration->setDefinition('validator.mapping.loader.annotation_loader', $annotationLoader); + $annotationLoader = new Definition($container->getParameter('validator.mapping.loader.annotation_loader.class')); + $container->setDefinition('validator.mapping.loader.annotation_loader', $annotationLoader); - $loader = $configuration->getDefinition('validator.mapping.loader.loader_chain'); + $loader = $container->getDefinition('validator.mapping.loader.loader_chain'); $arguments = $loader->getArguments(); array_unshift($arguments[0], new Reference('validator.mapping.loader.annotation_loader')); $loader->setArguments($arguments); } - } elseif ($configuration->hasDefinition('validator')) { - $configuration->getDefinition('validator')->clearAnnotations(); + } elseif ($container->hasDefinition('validator')) { + $container->getDefinition('validator')->clearAnnotations(); } } } @@ -170,26 +170,26 @@ class WebExtension extends LoaderExtension * Loads the templating configuration. * * @param array $config An array of configuration settings - * @param \Symfony\Components\DependencyInjection\BuilderConfiguration $configuration A BuilderConfiguration instance + * @param \Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder instance */ - public function templatingLoad($config, BuilderConfiguration $configuration) + public function templatingLoad($config, ContainerBuilder $container) { - if (!$configuration->hasDefinition('templating')) { + if (!$container->hasDefinition('templating')) { $loader = new XmlFileLoader(__DIR__.'/../Resources/config'); - $configuration->merge($loader->load($this->resources['templating'])); + $container->merge($loader->load($this->resources['templating'])); } if (array_key_exists('escaping', $config)) { - $configuration->setParameter('templating.output_escaper', $config['escaping']); + $container->setParameter('templating.output_escaper', $config['escaping']); } if (array_key_exists('assets_version', $config)) { - $configuration->setParameter('templating.assets.version', $config['assets_version']); + $container->setParameter('templating.assets.version', $config['assets_version']); } // path for the filesystem loader if (isset($config['path'])) { - $configuration->setParameter('templating.loader.filesystem.path', $config['path']); + $container->setParameter('templating.loader.filesystem.path', $config['path']); } // loaders @@ -201,20 +201,20 @@ class WebExtension extends LoaderExtension } if (1 === count($loaders)) { - $configuration->setAlias('templating.loader', (string) $loaders[0]); + $container->setAlias('templating.loader', (string) $loaders[0]); } else { - $configuration->getDefinition('templating.loader.chain')->addArgument($loaders); - $configuration->setAlias('templating.loader', 'templating.loader.chain'); + $container->getDefinition('templating.loader.chain')->addArgument($loaders); + $container->setAlias('templating.loader', 'templating.loader.chain'); } } // cache? - $configuration->setParameter('templating.loader.cache.path', null); + $container->setParameter('templating.loader.cache.path', null); if (isset($config['cache'])) { // wrap the loader with some cache - $configuration->setDefinition('templating.loader.wrapped', $configuration->findDefinition('templating.loader')); - $configuration->setDefinition('templating.loader', $configuration->getDefinition('templating.loader.cache')); - $configuration->setParameter('templating.loader.cache.path', $config['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']); } } diff --git a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php index 791c34ecae..084eb3c650 100644 --- a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php +++ b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php @@ -6,7 +6,7 @@ use Symfony\Framework\Bundle\Bundle; use Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Components\DependencyInjection\Loader\Loader; use Symfony\Components\DependencyInjection\Loader\XmlFileLoader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Bundle\FrameworkBundle\DependencyInjection\WebExtension; /* @@ -32,7 +32,7 @@ class FrameworkBundle extends Bundle * * @param \Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface $parameterBag A ParameterBagInterface instance * - * @return \Symfony\Components\DependencyInjection\BuilderConfiguration A BuilderConfiguration instance + * @return \Symfony\Components\DependencyInjection\ContainerBuilder A ContainerBuilder instance */ public function buildContainer(ParameterBagInterface $parameterBag) { @@ -44,12 +44,12 @@ class FrameworkBundle extends Bundle } $parameterBag->set('templating.loader.filesystem.path', $dirs); - $configuration = new BuilderConfiguration(); + $container = new ContainerBuilder(); if ($parameterBag->get('kernel.debug')) { $loader = new XmlFileLoader(__DIR__.'/Resources/config'); - $configuration->merge($loader->load('debug.xml')); + $container->merge($loader->load('debug.xml')); } - return $configuration; + return $container; } } diff --git a/src/Symfony/Bundle/PropelBundle/DependencyInjection/PropelExtension.php b/src/Symfony/Bundle/PropelBundle/DependencyInjection/PropelExtension.php index 951bea2bd4..c667a10b1b 100644 --- a/src/Symfony/Bundle/PropelBundle/DependencyInjection/PropelExtension.php +++ b/src/Symfony/Bundle/PropelBundle/DependencyInjection/PropelExtension.php @@ -4,7 +4,7 @@ namespace Symfony\Bundle\PropelBundle\DependencyInjection; use Symfony\Components\DependencyInjection\Loader\LoaderExtension; use Symfony\Components\DependencyInjection\Loader\XmlFileLoader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Definition; use Symfony\Components\DependencyInjection\Reference; @@ -18,29 +18,29 @@ class PropelExtension extends LoaderExtension * Loads the Propel configuration. * * @param array $config An array of configuration settings - * @param \Symfony\Components\DependencyInjection\BuilderConfiguration $configuration A BuilderConfiguration instance + * @param \Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder instance */ - public function configLoad($config, BuilderConfiguration $configuration) + public function configLoad($config, ContainerBuilder $container) { - if (!$configuration->hasDefinition('propel')) { + if (!$container->hasDefinition('propel')) { $loader = new XmlFileLoader(__DIR__.'/../Resources/config'); - $configuration->merge($loader->load($this->resources['propel'])); + $container->merge($loader->load($this->resources['propel'])); } - if (!$configuration->hasParameter('propel.path')) { + if (!$container->hasParameter('propel.path')) { if (!isset($config['path'])) { throw new \InvalidArgumentException('The "path" parameter is mandatory.'); } - $configuration->setParameter('propel.path', $config['path']); + $container->setParameter('propel.path', $config['path']); } if (isset($config['path'])) { - $configuration->setParameter('propel.path', $config['path']); + $container->setParameter('propel.path', $config['path']); } if (isset($config['phing_path'])) { - $configuration->setParameter('propel.phing_path', $config['phing_path']); + $container->setParameter('propel.phing_path', $config['phing_path']); } } @@ -48,13 +48,13 @@ class PropelExtension extends LoaderExtension * Loads the DBAL configuration. * * @param array $config An array of configuration settings - * @param \Symfony\Components\DependencyInjection\BuilderConfiguration $configuration A BuilderConfiguration instance + * @param \Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder instance */ - public function dbalLoad($config, BuilderConfiguration $configuration) + public function dbalLoad($config, ContainerBuilder $container) { - if (!$configuration->hasDefinition('propel')) { + if (!$container->hasDefinition('propel')) { $loader = new XmlFileLoader(__DIR__.'/../Resources/config'); - $configuration->merge($loader->load($this->resources['propel'])); + $container->merge($loader->load($this->resources['propel'])); } $defaultConnection = array( @@ -70,8 +70,8 @@ class PropelExtension extends LoaderExtension 'settings' => array('charset' => array('value' => 'UTF8')), ); - $defaultConnectionName = isset($config['default_connection']) ? $config['default_connection'] : $configuration->getParameter('propel.dbal.default_connection'); - $configuration->setParameter('propel.dbal.default_connection', $defaultConnectionName); + $defaultConnectionName = isset($config['default_connection']) ? $config['default_connection'] : $container->getParameter('propel.dbal.default_connection'); + $container->setParameter('propel.dbal.default_connection', $defaultConnectionName); $connections = array(); if (isset($config['connections'])) { @@ -82,7 +82,7 @@ class PropelExtension extends LoaderExtension $connections = array($defaultConnectionName => $config); } - $arguments = $configuration->getDefinition('propel.configuration')->getArguments(); + $arguments = $container->getDefinition('propel.configuration')->getArguments(); if (count($arguments)) { $c = $arguments[0]; } else { @@ -113,7 +113,7 @@ class PropelExtension extends LoaderExtension } } - $configuration->getDefinition('propel.configuration')->setArguments(array($c)); + $container->getDefinition('propel.configuration')->setArguments(array($c)); } /** diff --git a/src/Symfony/Bundle/PropelBundle/PropelBundle.php b/src/Symfony/Bundle/PropelBundle/PropelBundle.php index a1d2470f0e..62574d392f 100644 --- a/src/Symfony/Bundle/PropelBundle/PropelBundle.php +++ b/src/Symfony/Bundle/PropelBundle/PropelBundle.php @@ -16,7 +16,7 @@ class PropelBundle extends Bundle * * @param \Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface $parameterBag A ParameterBagInterface instance * - * @return \Symfony\Components\DependencyInjection\BuilderConfiguration A BuilderConfiguration instance + * @return \Symfony\Components\DependencyInjection\ContainerBuilder A ContainerBuilder instance */ public function buildContainer(ParameterBagInterface $parameterBag) { diff --git a/src/Symfony/Bundle/SwiftmailerBundle/DependencyInjection/SwiftmailerExtension.php b/src/Symfony/Bundle/SwiftmailerBundle/DependencyInjection/SwiftmailerExtension.php index f57e9d9379..eedc6a89db 100644 --- a/src/Symfony/Bundle/SwiftmailerBundle/DependencyInjection/SwiftmailerExtension.php +++ b/src/Symfony/Bundle/SwiftmailerBundle/DependencyInjection/SwiftmailerExtension.php @@ -4,7 +4,7 @@ namespace Symfony\Bundle\SwiftmailerBundle\DependencyInjection; use Symfony\Components\DependencyInjection\Loader\LoaderExtension; use Symfony\Components\DependencyInjection\Loader\XmlFileLoader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Reference; /* @@ -41,20 +41,20 @@ class SwiftMailerExtension extends LoaderExtension * * * @param array $config An array of configuration settings - * @param \Symfony\Components\DependencyInjection\BuilderConfiguration $configuration A BuilderConfiguration instance + * @param \Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder instance */ - public function mailerLoad($config, BuilderConfiguration $configuration) + public function mailerLoad($config, ContainerBuilder $container) { - if (!$configuration->hasDefinition('swiftmailer.mailer')) { + if (!$container->hasDefinition('swiftmailer.mailer')) { $loader = new XmlFileLoader(__DIR__.'/../Resources/config'); - $configuration->merge($loader->load($this->resources['mailer'])); - $configuration->setAlias('mailer', 'swiftmailer.mailer'); + $container->merge($loader->load($this->resources['mailer'])); + $container->setAlias('mailer', 'swiftmailer.mailer'); } $r = new \ReflectionClass('Swift_Message'); - $configuration->setParameter('swiftmailer.base_dir', dirname(dirname(dirname($r->getFilename())))); + $container->setParameter('swiftmailer.base_dir', dirname(dirname(dirname($r->getFilename())))); - $transport = $configuration->getParameter('swiftmailer.transport.name'); + $transport = $container->getParameter('swiftmailer.transport.name'); if (array_key_exists('transport', $config)) { if (null === $config['transport']) { $transport = 'null'; @@ -67,10 +67,10 @@ class SwiftMailerExtension extends LoaderExtension $transport = $config['transport']; } - $configuration->setParameter('swiftmailer.transport.name', $transport); + $container->setParameter('swiftmailer.transport.name', $transport); } - $configuration->setAlias('swiftmailer.transport', 'swiftmailer.transport.'.$transport); + $container->setAlias('swiftmailer.transport', 'swiftmailer.transport.'.$transport); if (isset($config['encryption']) && 'ssl' === $config['encryption'] && !isset($config['port'])) { $config['port'] = 465; @@ -78,7 +78,7 @@ class SwiftMailerExtension extends LoaderExtension foreach (array('encryption', 'port', 'host', 'username', 'password', 'auth_mode') as $key) { if (isset($config[$key])) { - $configuration->setParameter('swiftmailer.transport.'.$transport.'.'.$key, $config[$key]); + $container->setParameter('swiftmailer.transport.'.$transport.'.'.$key, $config[$key]); } } @@ -86,24 +86,24 @@ class SwiftMailerExtension extends LoaderExtension if (isset($config['spool'])) { $type = isset($config['type']) ? $config['type'] : 'file'; - $configuration->setAlias('swiftmailer.transport.real', 'swiftmailer.transport.'.$transport); - $configuration->setAlias('swiftmailer.transport', 'swiftmailer.transport.spool'); - $configuration->setAlias('swiftmailer.spool', 'swiftmailer.spool.'.$type); + $container->setAlias('swiftmailer.transport.real', 'swiftmailer.transport.'.$transport); + $container->setAlias('swiftmailer.transport', 'swiftmailer.transport.spool'); + $container->setAlias('swiftmailer.spool', 'swiftmailer.spool.'.$type); foreach (array('path') as $key) { if (isset($config['spool'][$key])) { - $configuration->setParameter('swiftmailer.spool.'.$type.'.'.$key, $config['spool'][$key]); + $container->setParameter('swiftmailer.spool.'.$type.'.'.$key, $config['spool'][$key]); } } } if (isset($config['delivery_address'])) { - $configuration->setParameter('swiftmailer.single_address', $config['delivery_address']); - $configuration->findDefinition('swiftmailer.transport')->addMethodCall('registerPlugin', array(new Reference('swiftmailer.plugin.redirecting'))); + $container->setParameter('swiftmailer.single_address', $config['delivery_address']); + $container->findDefinition('swiftmailer.transport')->addMethodCall('registerPlugin', array(new Reference('swiftmailer.plugin.redirecting'))); } if (isset($config['disable_delivery']) && $config['disable_delivery']) { - $configuration->findDefinition('swiftmailer.transport')->addMethodCall('registerPlugin', array(new Reference('swiftmailer.plugin.blackhole'))); + $container->findDefinition('swiftmailer.transport')->addMethodCall('registerPlugin', array(new Reference('swiftmailer.plugin.blackhole'))); } } diff --git a/src/Symfony/Bundle/SwiftmailerBundle/SwiftmailerBundle.php b/src/Symfony/Bundle/SwiftmailerBundle/SwiftmailerBundle.php index f47747ce5a..6a4529a8b3 100644 --- a/src/Symfony/Bundle/SwiftmailerBundle/SwiftmailerBundle.php +++ b/src/Symfony/Bundle/SwiftmailerBundle/SwiftmailerBundle.php @@ -30,7 +30,7 @@ class SwiftmailerBundle extends Bundle * * @param \Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface $parameterBag A ParameterBagInterface instance * - * @return \Symfony\Components\DependencyInjection\BuilderConfiguration A BuilderConfiguration instance + * @return \Symfony\Components\DependencyInjection\ContainerBuilder A ContainerBuilder instance */ public function buildContainer(ParameterBagInterface $parameterBag) { diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php index 4c6d7ed9c4..19f779cf2b 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php @@ -4,7 +4,7 @@ namespace Symfony\Bundle\TwigBundle\DependencyInjection; use Symfony\Components\DependencyInjection\Loader\LoaderExtension; use Symfony\Components\DependencyInjection\Loader\XmlFileLoader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; /* * This file is part of the Symfony framework. @@ -28,16 +28,16 @@ class TwigExtension extends LoaderExtension * Loads the Twig configuration. * * @param array $config An array of configuration settings - * @param \Symfony\Components\DependencyInjection\BuilderConfiguration $configuration A BuilderConfiguration instance + * @param \Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder instance */ - public function configLoad($config, BuilderConfiguration $configuration) + public function configLoad($config, ContainerBuilder $container) { - if (!$configuration->hasDefinition('twig')) { + if (!$container->hasDefinition('twig')) { $loader = new XmlFileLoader(__DIR__.'/../Resources/config'); - $configuration->merge($loader->load('twig.xml')); + $container->merge($loader->load('twig.xml')); } - $configuration->setParameter('twig.options', array_replace($configuration->getParameter('twig.options'), $config)); + $container->setParameter('twig.options', array_replace($container->getParameter('twig.options'), $config)); } /** diff --git a/src/Symfony/Bundle/TwigBundle/TwigBundle.php b/src/Symfony/Bundle/TwigBundle/TwigBundle.php index 9aaa69f6c4..d46590b580 100644 --- a/src/Symfony/Bundle/TwigBundle/TwigBundle.php +++ b/src/Symfony/Bundle/TwigBundle/TwigBundle.php @@ -6,7 +6,7 @@ use Symfony\Framework\Bundle\Bundle; use Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Components\DependencyInjection\Loader\Loader; use Symfony\Components\DependencyInjection\Loader\XmlFileLoader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Bundle\TwigBundle\DependencyInjection\TwigExtension; /* @@ -32,7 +32,7 @@ class TwigBundle extends Bundle * * @param \Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface $parameterBag A ParameterBagInterface instance * - * @return \Symfony\Components\DependencyInjection\BuilderConfiguration A BuilderConfiguration instance + * @return \Symfony\Components\DependencyInjection\ContainerBuilder A ContainerBuilder instance */ public function buildContainer(ParameterBagInterface $parameterBag) { diff --git a/src/Symfony/Bundle/ZendBundle/DependencyInjection/ZendExtension.php b/src/Symfony/Bundle/ZendBundle/DependencyInjection/ZendExtension.php index d70c3bcfca..5991c1ffc6 100644 --- a/src/Symfony/Bundle/ZendBundle/DependencyInjection/ZendExtension.php +++ b/src/Symfony/Bundle/ZendBundle/DependencyInjection/ZendExtension.php @@ -4,7 +4,7 @@ namespace Symfony\Bundle\ZendBundle\DependencyInjection; use Symfony\Components\DependencyInjection\Loader\LoaderExtension; use Symfony\Components\DependencyInjection\Loader\XmlFileLoader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; /* * This file is part of the Symfony framework. @@ -36,22 +36,22 @@ class ZendExtension extends LoaderExtension * * * @param array $config An array of configuration settings - * @param \Symfony\Components\DependencyInjection\BuilderConfiguration $configuration A BuilderConfiguration instance + * @param \Symfony\Components\DependencyInjection\ContainerBuilder $container A ContainerBuilder instance */ - public function loggerLoad($config, BuilderConfiguration $configuration) + public function loggerLoad($config, ContainerBuilder $container) { - if (!$configuration->hasDefinition('zend.logger')) { + if (!$container->hasDefinition('zend.logger')) { $loader = new XmlFileLoader(__DIR__.'/../Resources/config'); - $configuration->merge($loader->load($this->resources['logger'])); - $configuration->setAlias('logger', 'zend.logger'); + $container->merge($loader->load($this->resources['logger'])); + $container->setAlias('logger', 'zend.logger'); } if (isset($config['priority'])) { - $configuration->setParameter('zend.logger.priority', is_int($config['priority']) ? $config['priority'] : constant('\\Zend\\Log\\Logger::'.strtoupper($config['priority']))); + $container->setParameter('zend.logger.priority', is_int($config['priority']) ? $config['priority'] : constant('\\Zend\\Log\\Logger::'.strtoupper($config['priority']))); } if (isset($config['path'])) { - $configuration->setParameter('zend.logger.path', $config['path']); + $container->setParameter('zend.logger.path', $config['path']); } } diff --git a/src/Symfony/Bundle/ZendBundle/ZendBundle.php b/src/Symfony/Bundle/ZendBundle/ZendBundle.php index a1f62c5749..9f3d4d5ef4 100644 --- a/src/Symfony/Bundle/ZendBundle/ZendBundle.php +++ b/src/Symfony/Bundle/ZendBundle/ZendBundle.php @@ -31,7 +31,7 @@ class ZendBundle extends Bundle * * @param \Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface $parameterBag A ParameterBagInterface instance * - * @return \Symfony\Components\DependencyInjection\BuilderConfiguration A BuilderConfiguration instance + * @return \Symfony\Components\DependencyInjection\ContainerBuilder A ContainerBuilder instance */ public function buildContainer(ParameterBagInterface $parameterBag) { diff --git a/src/Symfony/Components/DependencyInjection/BuilderConfiguration.php b/src/Symfony/Components/DependencyInjection/BuilderConfiguration.php deleted file mode 100644 index 97db4f236e..0000000000 --- a/src/Symfony/Components/DependencyInjection/BuilderConfiguration.php +++ /dev/null @@ -1,375 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -/** - * A BuilderConfiguration is a consistent set of definitions and parameters. - * - * @package Symfony - * @subpackage Components_DependencyInjection - * @author Fabien Potencier - */ -class BuilderConfiguration -{ - protected $definitions; - protected $parameterBag; - protected $aliases; - protected $resources; - protected $extensions; - - public function __construct(array $definitions = array(), ParameterBagInterface $parameterBag = null) - { - $this->aliases = array(); - $this->resources = array(); - $this->extensions = array(); - - $this->setDefinitions($definitions); - $this->parameterBag = null === $parameterBag ? new ParameterBag() : $parameterBag; - } - - /** - * Returns an array of resources loaded to build this configuration. - * - * @return ResourceInterface[] An array of resources - */ - public function getResources() - { - return array_unique($this->resources); - } - - /** - * Adds a resource for this configuration. - * - * @param ResourceInterface $resource A resource instance - * - * @return BuilderConfiguration The current instance - */ - public function addResource(ResourceInterface $resource) - { - $this->resources[] = $resource; - - return $this; - } - - /** - * Merges a BuilderConfiguration with the current one. - * - * @param BuilderConfiguration $configuration - * - * @return BuilderConfiguration The current instance - */ - public function merge(BuilderConfiguration $configuration = null) - { - if (null === $configuration) { - return; - } - - $this->addDefinitions($configuration->getDefinitions()); - $this->addAliases($configuration->getAliases()); - $this->parameterBag->add($configuration->getParameterBag()->all()); - - foreach ($configuration->getResources() as $resource) { - $this->addResource($resource); - } - - return $this; - } - - /** - * Loads the configuration for an extension. - * - * @param LoaderExtensionInterface $extension A LoaderExtensionInterface instance - * @param string $tag The extension tag to load (without the namespace - namespace.tag) - * @param array $values An array of values that customizes the extension - * - * @return BuilderConfiguration The current instance - */ - public function loadFromExtension(LoaderExtensionInterface $extension, $tag, array $values = array()) - { - $namespace = $extension->getAlias(); - - $this->addObjectResource($extension); - - if (!isset($this->extensions[$namespace])) { - $this->extensions[$namespace] = new self(); - - $r = new \ReflectionObject($extension); - $this->extensions[$namespace]->addResource(new FileResource($r->getFileName())); - } - - $extension->load($tag, $values, $this->extensions[$namespace]); - - return $this; - } - - /** - * Adds the object class hierarchy as resources. - * - * @param object $object An object instance - */ - public function addObjectResource($object) - { - $parent = new \ReflectionObject($object); - $this->addResource(new FileResource($parent->getFileName())); - while ($parent = $parent->getParentClass()) { - $this->addResource(new FileResource($parent->getFileName())); - } - } - - /** - * Merges the extension configuration. - * - * @return BuilderConfiguration The current instance - */ - public function mergeExtensionsConfiguration() - { - foreach ($this->extensions as $name => $configuration) { - $this->merge($configuration); - } - - $this->extensions = array(); - - return $this; - } - - /** - * Gets the parameter bag. - * - * @return Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface A ParameterBagInterface instance - */ - public function getParameterBag() - { - return $this->parameterBag; - } - - /** - * Gets a parameter. - * - * @param string $name The parameter name - * - * @return mixed The parameter value - * - * @throws \InvalidArgumentException if the parameter is not defined - */ - public function getParameter($name) - { - return $this->parameterBag->get($name); - } - - /** - * Sets a parameter. - * - * @param string $name The parameter name - * @param mixed $parameters The parameter value - */ - public function setParameter($name, $value) - { - $this->parameterBag->set($name, $value); - } - - /** - * Checks if a parameter is defined. - * - * @param string $name The parameter name - */ - public function hasParameter($name) - { - return $this->parameterBag->has($name); - } - - /** - * Sets an alias for an existing service. - * - * @param string $alias The alias to create - * @param string $id The service to alias - * - * @return BuilderConfiguration The current instance - */ - public function setAlias($alias, $id) - { - unset($this->definitions[$alias]); - - $this->aliases[$alias] = $id; - - return $this; - } - - /** - * Adds definition aliases. - * - * @param array $aliases An array of aliases - * - * @return BuilderConfiguration The current instance - */ - public function addAliases(array $aliases) - { - foreach ($aliases as $alias => $id) { - $this->setAlias($alias, $id); - } - - return $this; - } - - /** - * Gets all defined aliases. - * - * @return array An array of aliases - */ - public function getAliases() - { - return $this->aliases; - } - - /** - * Returns true if a service alias exists. - * - * @param string $alias The alias - * - * @return Boolean true if the alias exists, false otherwise - */ - public function hasAlias($alias) - { - return array_key_exists($alias, $this->aliases); - } - - /** - * Gets the service id for a given alias. - * - * @param string $alias The alias - * - * @return string The aliased id - * - * @throws \InvalidArgumentException if the service alias does not exist - */ - public function getAlias($alias) - { - if (!$this->hasAlias($alias)) { - throw new \InvalidArgumentException(sprintf('The service alias "%s" does not exist.', $alias)); - } - - return $this->aliases[$alias]; - } - - /** - * Sets a definition. - * - * @param string $id The identifier - * @param Definition $definition A Definition instance - * - * @return BuilderConfiguration The current instance - */ - public function setDefinition($id, Definition $definition) - { - unset($this->aliases[$id]); - - $this->definitions[$id] = $definition; - - return $this; - } - - /** - * Adds the definitions. - * - * @param Definition[] $definitions An array of definitions - * - * @return BuilderConfiguration The current instance - */ - public function addDefinitions(array $definitions) - { - foreach ($definitions as $id => $definition) { - $this->setDefinition($id, $definition); - } - - return $this; - } - - /** - * Sets the definitions. - * - * @param array $definitions An array of definitions - * - * @return BuilderConfiguration The current instance - */ - public function setDefinitions(array $definitions) - { - $this->definitions = array(); - $this->addDefinitions($definitions); - - return $this; - } - - /** - * Gets all definitions. - * - * @return array An array of Definition instances - */ - public function getDefinitions() - { - return $this->definitions; - } - - /** - * Returns true if a service definition exists under the given identifier. - * - * @param string $id The service identifier - * - * @return Boolean true if the service definition exists, false otherwise - */ - public function hasDefinition($id) - { - return array_key_exists($id, $this->definitions); - } - - /** - * Gets a service definition. - * - * @param string $id The service identifier - * - * @return Definition A Definition instance - * - * @throws \InvalidArgumentException if the service definition does not exist - */ - public function getDefinition($id) - { - if (!$this->hasDefinition($id)) { - throw new \InvalidArgumentException(sprintf('The service definition "%s" does not exist.', $id)); - } - - return $this->definitions[$id]; - } - - /** - * Gets a service definition by id or alias. - * - * The method "unaliases" recursively to return a Definition instance. - * - * @param string $id The service identifier or alias - * - * @return Definition A Definition instance - * - * @throws \InvalidArgumentException if the service definition does not exist - */ - public function findDefinition($id) - { - if ($this->hasAlias($id)) { - return $this->findDefinition($this->getAlias($id)); - } - - return $this->getDefinition($id); - } -} diff --git a/src/Symfony/Components/DependencyInjection/Builder.php b/src/Symfony/Components/DependencyInjection/ContainerBuilder.php similarity index 74% rename from src/Symfony/Components/DependencyInjection/Builder.php rename to src/Symfony/Components/DependencyInjection/ContainerBuilder.php index 36aeb9f4cd..05158fb803 100644 --- a/src/Symfony/Components/DependencyInjection/Builder.php +++ b/src/Symfony/Components/DependencyInjection/ContainerBuilder.php @@ -2,6 +2,10 @@ namespace Symfony\Components\DependencyInjection; +use Symfony\Components\DependencyInjection\Loader\LoaderExtensionInterface; +use Symfony\Components\DependencyInjection\Resource\ResourceInterface; +use Symfony\Components\DependencyInjection\Resource\FileResource; + /* * This file is part of the Symfony framework. * @@ -12,17 +16,84 @@ namespace Symfony\Components\DependencyInjection; */ /** - * Builder is a DI container that provides an interface to build the services. + * ContainerBuilder is a DI container that provides an API to easily describe services. * * @package Symfony * @subpackage Components_DependencyInjection * @author Fabien Potencier */ -class Builder extends Container implements AnnotatedContainerInterface +class ContainerBuilder extends Container implements AnnotatedContainerInterface { protected $definitions = array(); protected $aliases = array(); protected $loading = array(); + protected $resources = array(); + protected $extensions = array(); + + /** + * Returns an array of resources loaded to build this configuration. + * + * @return ResourceInterface[] An array of resources + */ + public function getResources() + { + return array_unique($this->resources); + } + + /** + * Adds a resource for this configuration. + * + * @param ResourceInterface $resource A resource instance + * + * @return ContainerBuilder The current instance + */ + public function addResource(ResourceInterface $resource) + { + $this->resources[] = $resource; + + return $this; + } + + /** + * Adds the object class hierarchy as resources. + * + * @param object $object An object instance + */ + public function addObjectResource($object) + { + $parent = new \ReflectionObject($object); + $this->addResource(new FileResource($parent->getFileName())); + while ($parent = $parent->getParentClass()) { + $this->addResource(new FileResource($parent->getFileName())); + } + } + + /** + * Loads the configuration for an extension. + * + * @param LoaderExtensionInterface $extension A LoaderExtensionInterface instance + * @param string $tag The extension tag to load (without the namespace - namespace.tag) + * @param array $values An array of values that customizes the extension + * + * @return ContainerBuilder The current instance + */ + public function loadFromExtension(LoaderExtensionInterface $extension, $tag, array $values = array()) + { + $namespace = $extension->getAlias(); + + $this->addObjectResource($extension); + + if (!isset($this->extensions[$namespace])) { + $this->extensions[$namespace] = new self($this->parameterBag); + + $r = new \ReflectionObject($extension); + $this->extensions[$namespace]->addResource(new FileResource($r->getFileName())); + } + + $extension->load($tag, $values, $this->extensions[$namespace]); + + return $this; + } /** * Sets a service. @@ -97,7 +168,7 @@ class Builder extends Container implements AnnotatedContainerInterface } /** - * Merges a BuilderConfiguration with the current Builder configuration. + * Merges a ContainerBuilder with the current ContainerBuilder configuration. * * Service definitions overrides the current defined ones. * @@ -105,33 +176,65 @@ class Builder extends Container implements AnnotatedContainerInterface * the parameters passed to the container constructor to have precedence * over the loaded ones. * - * $container = new Builder(array('foo' => 'bar')); + * $container = new ContainerBuilder(array('foo' => 'bar')); * $loader = new LoaderXXX($container); * $loader->load('resource_name'); * $container->register('foo', new stdClass()); * * In the above example, even if the loaded resource defines a foo - * parameter, the value will still be 'bar' as defined in the builder + * parameter, the value will still be 'bar' as defined in the ContainerBuilder * constructor. */ - public function merge(BuilderConfiguration $configuration = null) + public function merge(ContainerBuilder $container) { - if (null === $configuration) { - return; + $this->addDefinitions($container->getDefinitions()); + $this->addAliases($container->getAliases()); + $this->parameterBag->add($container->getParameterBag()->all()); + + foreach ($container->getResources() as $resource) { + $this->addResource($resource); } - $this->addDefinitions($configuration->getDefinitions()); - $this->addAliases($configuration->getAliases()); - - $parameterBag = $this->getParameterBag(); - $currentParameters = $parameterBag->all(); - foreach ($configuration->getParameterBag()->all() as $key => $value) { - $parameterBag->set($key, $value); + foreach ($container->getExtensionContainers() as $name => $container) { + if (isset($this->extensions[$name])) { + $this->extensions[$name]->merge($container); + } else { + $this->extensions[$name] = $container; + } } - $parameterBag->add($currentParameters); + } - foreach ($parameterBag->all() as $key => $value) { - $parameterBag->set($key, self::resolveValue($value, $this->getParameterBag()->all())); + /** + * Returns the containers for the registered extensions. + * + * @return LoaderExtensionInterface[] An array of extension containers + */ + public function getExtensionContainers() + { + return $this->extensions; + } + + /** + * Commits the extension configuration into the main configuration + * and resolves parameter values. + */ + public function commit() + { + $parameters = $this->parameterBag->all(); + $definitions = $this->definitions; + $aliases = $this->aliases; + + foreach ($this->extensions as $container) { + $this->merge($container); + } + $this->extensions = array(); + + $this->addDefinitions($definitions); + $this->addAliases($aliases); + $this->parameterBag->add($parameters); + + foreach ($this->parameterBag->all() as $key => $value) { + $this->parameterBag->set($key, self::resolveValue($value, $this->getParameterBag()->all())); } } @@ -313,6 +416,26 @@ class Builder extends Container implements AnnotatedContainerInterface return $this->definitions[$id]; } + /** + * Gets a service definition by id or alias. + * + * The method "unaliases" recursively to return a Definition instance. + * + * @param string $id The service identifier or alias + * + * @return Definition A Definition instance + * + * @throws \InvalidArgumentException if the service definition does not exist + */ + public function findDefinition($id) + { + if ($this->hasAlias($id)) { + return $this->findDefinition($this->getAlias($id)); + } + + return $this->getDefinition($id); + } + /** * Creates a service for a service definition. * diff --git a/src/Symfony/Components/DependencyInjection/Dumper/Dumper.php b/src/Symfony/Components/DependencyInjection/Dumper/Dumper.php index 9993dc378b..910c9234d0 100644 --- a/src/Symfony/Components/DependencyInjection/Dumper/Dumper.php +++ b/src/Symfony/Components/DependencyInjection/Dumper/Dumper.php @@ -2,7 +2,7 @@ namespace Symfony\Components\DependencyInjection\Dumper; -use Symfony\Components\DependencyInjection\Builder; +use Symfony\Components\DependencyInjection\ContainerBuilder; /* * This file is part of the Symfony framework. @@ -27,9 +27,9 @@ abstract class Dumper implements DumperInterface /** * Constructor. * - * @param Builder $container The service container to dump + * @param ContainerBuilder $container The service container to dump */ - public function __construct(Builder $container) + public function __construct(ContainerBuilder $container) { $this->container = $container; } diff --git a/src/Symfony/Components/DependencyInjection/Dumper/GraphvizDumper.php b/src/Symfony/Components/DependencyInjection/Dumper/GraphvizDumper.php index f44a5a109e..65e95fbbc0 100644 --- a/src/Symfony/Components/DependencyInjection/Dumper/GraphvizDumper.php +++ b/src/Symfony/Components/DependencyInjection/Dumper/GraphvizDumper.php @@ -5,7 +5,7 @@ namespace Symfony\Components\DependencyInjection\Dumper; use Symfony\Components\DependencyInjection\Definition; use Symfony\Components\DependencyInjection\Reference; use Symfony\Components\DependencyInjection\Parameter; -use Symfony\Components\DependencyInjection\Builder; +use Symfony\Components\DependencyInjection\ContainerBuilder; /* * This file is part of the Symfony framework. @@ -159,7 +159,7 @@ class GraphvizDumper extends Dumper protected function getValue($value, $default = '') { - return Builder::resolveValue($value, $this->container->getParameterBag()->all()); + return ContainerBuilder::resolveValue($value, $this->container->getParameterBag()->all()); } protected function startDot() diff --git a/src/Symfony/Components/DependencyInjection/Dumper/PhpDumper.php b/src/Symfony/Components/DependencyInjection/Dumper/PhpDumper.php index 5923f5eb1a..9faecef2f1 100644 --- a/src/Symfony/Components/DependencyInjection/Dumper/PhpDumper.php +++ b/src/Symfony/Components/DependencyInjection/Dumper/PhpDumper.php @@ -2,7 +2,7 @@ namespace Symfony\Components\DependencyInjection\Dumper; -use Symfony\Components\DependencyInjection\Builder; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Container; use Symfony\Components\DependencyInjection\ContainerInterface; use Symfony\Components\DependencyInjection\Reference; @@ -354,7 +354,7 @@ EOF; protected function wrapServiceConditionals($value, $code) { - if (!$services = Builder::getServiceConditionals($value)) { + if (!$services = ContainerBuilder::getServiceConditionals($value)) { return $code; } diff --git a/src/Symfony/Components/DependencyInjection/Loader/IniFileLoader.php b/src/Symfony/Components/DependencyInjection/Loader/IniFileLoader.php index 7399b10784..0499969a46 100644 --- a/src/Symfony/Components/DependencyInjection/Loader/IniFileLoader.php +++ b/src/Symfony/Components/DependencyInjection/Loader/IniFileLoader.php @@ -2,7 +2,7 @@ namespace Symfony\Components\DependencyInjection\Loader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Resource\FileResource; /* @@ -26,23 +26,22 @@ class IniFileLoader extends FileLoader /** * Loads a resource. * - * @param mixed $resource The resource - * @param Boolean $main Whether this is the main load() call - * @param BuilderConfiguration $configuration A BuilderConfiguration instance to use for the configuration + * @param mixed $resource The resource + * @param ContainerBuilder $container A ContainerBuilder instance to use for the configuration * - * @return BuilderConfiguration A BuilderConfiguration instance + * @return ContainerBuilder A ContainerBuilder instance * * @throws \InvalidArgumentException When ini file is not valid */ - public function load($file, $main = true, BuilderConfiguration $configuration = null) + public function load($file, ContainerBuilder $container = null) { $path = $this->findFile($file); - if (null === $configuration) { - $configuration = new BuilderConfiguration(); + if (null === $container) { + $container = new ContainerBuilder(); } - $configuration->addResource(new FileResource($path)); + $container->addResource(new FileResource($path)); $result = parse_ini_file($path, true); if (false === $result || array() === $result) { @@ -51,10 +50,10 @@ class IniFileLoader extends FileLoader if (isset($result['parameters']) && is_array($result['parameters'])) { foreach ($result['parameters'] as $key => $value) { - $configuration->setParameter($key, $value); + $container->setParameter($key, $value); } } - return $configuration; + return $container; } } diff --git a/src/Symfony/Components/DependencyInjection/Loader/LoaderExtension.php b/src/Symfony/Components/DependencyInjection/Loader/LoaderExtension.php index 2d2959f1a3..0decfcd35e 100644 --- a/src/Symfony/Components/DependencyInjection/Loader/LoaderExtension.php +++ b/src/Symfony/Components/DependencyInjection/Loader/LoaderExtension.php @@ -2,7 +2,7 @@ namespace Symfony\Components\DependencyInjection\Loader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; /* * This file is part of the Symfony framework. @@ -22,29 +22,16 @@ use Symfony\Components\DependencyInjection\BuilderConfiguration; */ abstract class LoaderExtension implements LoaderExtensionInterface { - protected $resources = array(); - - /** - * Sets a configuration entry point for the given extension name. - * - * @param string $name The configuration extension name - * @param mixed $resource A resource - */ - public function setConfiguration($name, $resource) - { - $this->resources[$name] = $resource; - } - /** * Loads a specific configuration. * - * @param string $tag The tag name - * @param array $config An array of configuration values - * @param BuilderConfiguration $configuration A BuilderConfiguration instance + * @param string $tag The tag name + * @param array $config An array of configuration values + * @param ContainerBuilder $configuration A ContainerBuilder instance * * @throws \InvalidArgumentException When provided tag is not defined in this extension */ - public function load($tag, array $config, BuilderConfiguration $configuration) + public function load($tag, array $config, ContainerBuilder $configuration) { if (!method_exists($this, $method = $tag.'Load')) { throw new \InvalidArgumentException(sprintf('The tag "%s:%s" is not defined in the "%s" extension.', $this->getAlias(), $tag, $this->getAlias())); diff --git a/src/Symfony/Components/DependencyInjection/Loader/LoaderExtensionInterface.php b/src/Symfony/Components/DependencyInjection/Loader/LoaderExtensionInterface.php index 76fc86da42..6972586e00 100644 --- a/src/Symfony/Components/DependencyInjection/Loader/LoaderExtensionInterface.php +++ b/src/Symfony/Components/DependencyInjection/Loader/LoaderExtensionInterface.php @@ -2,7 +2,7 @@ namespace Symfony\Components\DependencyInjection\Loader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; /* * This file is part of the Symfony framework. @@ -22,26 +22,18 @@ use Symfony\Components\DependencyInjection\BuilderConfiguration; */ interface LoaderExtensionInterface { - /** - * Sets a configuration entry point for the given extension name. - * - * @param string $name The configuration extension name - * @param mixed $resource A resource - */ - public function setConfiguration($name, $resource); - /** * Loads a specific configuration. * - * @param string $tag The tag name - * @param array $config An array of configuration values - * @param BuilderConfiguration $configuration A BuilderConfiguration instance + * @param string $tag The tag name + * @param array $config An array of configuration values + * @param ContainerBuilder $configuration A ContainerBuilder instance * - * @return BuilderConfiguration A BuilderConfiguration instance + * @return ContainerBuilder A ContainerBuilder instance * * @throws \InvalidArgumentException When provided tag is not defined in this extension */ - public function load($tag, array $config, BuilderConfiguration $configuration); + public function load($tag, array $config, ContainerBuilder $configuration); /** * Returns the namespace to be used for this extension (XML namespace). diff --git a/src/Symfony/Components/DependencyInjection/Loader/LoaderInterface.php b/src/Symfony/Components/DependencyInjection/Loader/LoaderInterface.php index c7312ef098..ac5ac2792d 100644 --- a/src/Symfony/Components/DependencyInjection/Loader/LoaderInterface.php +++ b/src/Symfony/Components/DependencyInjection/Loader/LoaderInterface.php @@ -2,7 +2,7 @@ namespace Symfony\Components\DependencyInjection\Loader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; /* * This file is part of the Symfony framework. @@ -19,7 +19,7 @@ use Symfony\Components\DependencyInjection\BuilderConfiguration; * $loader = new XXXLoader(); * $config = $loader->load('resource_name'); * - * $container = new Builder(); + * $container = new ContainerBuilder(); * $container->merge($config); * * @package Symfony @@ -32,7 +32,7 @@ interface LoaderInterface * Loads a resource. * * A resource can be anything that can be converted to a - * BuilderConfiguration instance. + * ContainerBuilder instance. * * Some loaders support an array of resources as an argument to the * constructor. @@ -58,13 +58,12 @@ interface LoaderInterface * If you load file1.xml and file2.xml in this order, the value of complex * will be "foo". * - * @param mixed $resource The resource - * @param Boolean $main Whether this is the main load() call - * @param BuilderConfiguration $configuration A BuilderConfiguration instance to use for the configuration + * @param mixed $resource The resource + * @param ContainerBuilder $container A ContainerBuilder instance to use for the configuration * - * @return BuilderConfiguration A BuilderConfiguration instance + * @return ContainerBuilder A ContainerBuilder instance */ - function load($resource, $main = true, BuilderConfiguration $configuration = null); + function load($resource, ContainerBuilder $container = null); static function registerExtension(LoaderExtensionInterface $extension); } diff --git a/src/Symfony/Components/DependencyInjection/Loader/XmlFileLoader.php b/src/Symfony/Components/DependencyInjection/Loader/XmlFileLoader.php index 0ac24b26d4..a13d44fb8b 100644 --- a/src/Symfony/Components/DependencyInjection/Loader/XmlFileLoader.php +++ b/src/Symfony/Components/DependencyInjection/Loader/XmlFileLoader.php @@ -4,7 +4,7 @@ namespace Symfony\Components\DependencyInjection\Loader; use Symfony\Components\DependencyInjection\Definition; use Symfony\Components\DependencyInjection\Reference; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\SimpleXMLElement; use Symfony\Components\DependencyInjection\Resource\FileResource; @@ -29,67 +29,62 @@ class XmlFileLoader extends FileLoader /** * Loads an array of XML files. * - * @param mixed $resource The resource - * @param Boolean $main Whether this is the main load() call - * @param BuilderConfiguration $configuration A BuilderConfiguration instance to use for the configuration + * @param mixed $resource The resource + * @param ContainerBuilder $container A ContainerBuilder instance to use for the configuration * - * @return BuilderConfiguration A BuilderConfiguration instance + * @return ContainerBuilder A ContainerBuilder instance */ - public function load($file, $main = true, BuilderConfiguration $configuration = null) + public function load($file, ContainerBuilder $container = null) { $path = $this->findFile($file); $xml = $this->parseFile($path); - if (null === $configuration) { - $configuration = new BuilderConfiguration(); + if (null === $container) { + $container = new ContainerBuilder(); } - $configuration->addResource(new FileResource($path)); + $container->addResource(new FileResource($path)); // anonymous services - $xml = $this->processAnonymousServices($configuration, $xml, $file); + $xml = $this->processAnonymousServices($container, $xml, $file); // imports - $this->parseImports($configuration, $xml, $file); + $this->parseImports($container, $xml, $file); // extensions - $this->loadFromExtensions($configuration, $xml); - - if ($main) { - $configuration->mergeExtensionsConfiguration(); - } + $this->loadFromExtensions($container, $xml); // parameters - $this->parseParameters($configuration, $xml, $file); + $this->parseParameters($container, $xml, $file); // services - $this->parseDefinitions($configuration, $xml, $file); + $this->parseDefinitions($container, $xml, $file); - return $configuration; + return $container; } - protected function parseParameters(BuilderConfiguration $configuration, $xml, $file) + protected function parseParameters(ContainerBuilder $container, $xml, $file) { if (!$xml->parameters) { return; } - $configuration->getParameterBag()->add($xml->parameters->getArgumentsAsPhp('parameter')); + $container->getParameterBag()->add($xml->parameters->getArgumentsAsPhp('parameter')); } - protected function parseImports(BuilderConfiguration $configuration, $xml, $file) + protected function parseImports(ContainerBuilder $container, $xml, $file) { if (!$xml->imports) { return; } foreach ($xml->imports->import as $import) { - $this->parseImport($configuration, $import, $file); + $this->parseImport($container, $import, $file); } } - protected function parseImport(BuilderConfiguration $configuration, $import, $file) + protected function parseImport(ContainerBuilder $container, $import, $file) { $class = null; if (isset($import['class']) && $import['class'] !== get_class($this)) { @@ -110,24 +105,24 @@ class XmlFileLoader extends FileLoader $importedFile = $this->getAbsolutePath((string) $import['resource'], dirname($file)); - return $loader->load($importedFile, false, $configuration); + return $loader->load($importedFile, $container); } - protected function parseDefinitions(BuilderConfiguration $configuration, $xml, $file) + protected function parseDefinitions(ContainerBuilder $container, $xml, $file) { if (!$xml->services) { return; } foreach ($xml->services->service as $service) { - $this->parseDefinition($configuration, (string) $service['id'], $service, $file); + $this->parseDefinition($container, (string) $service['id'], $service, $file); } } - protected function parseDefinition(BuilderConfiguration $configuration, $id, $service, $file) + protected function parseDefinition(ContainerBuilder $container, $id, $service, $file) { if ((string) $service['alias']) { - $configuration->setAlias($id, (string) $service['alias']); + $container->setAlias($id, (string) $service['alias']); return; } @@ -178,7 +173,7 @@ class XmlFileLoader extends FileLoader $definition->addAnnotation((string) $annotation['name'], $parameters); } - $configuration->setDefinition($id, $definition); + $container->setDefinition($id, $definition); } /** @@ -199,7 +194,7 @@ class XmlFileLoader extends FileLoader return simplexml_import_dom($dom, 'Symfony\\Components\\DependencyInjection\\SimpleXMLElement'); } - protected function processAnonymousServices(BuilderConfiguration $configuration, $xml, $file) + protected function processAnonymousServices(ContainerBuilder $container, $xml, $file) { $definitions = array(); $count = 0; @@ -218,7 +213,7 @@ class XmlFileLoader extends FileLoader // resolve definitions krsort($definitions); foreach ($definitions as $id => $def) { - $this->parseDefinition($configuration, $id, $def[0], $def[1]); + $this->parseDefinition($container, $id, $def[0], $def[1]); $oNode = dom_import_simplexml($def[0]); $oNode->parentNode->removeChild($oNode); @@ -321,7 +316,7 @@ EOF return $errors; } - protected function loadFromExtensions(BuilderConfiguration $configuration, $xml) + protected function loadFromExtensions(ContainerBuilder $container, $xml) { foreach (dom_import_simplexml($xml)->childNodes as $node) { if (!$node instanceof \DOMElement || $node->namespaceURI === 'http://www.symfony-project.org/schema/dic/services') { @@ -333,7 +328,7 @@ EOF $values = array(); } - $configuration->loadFromExtension($this->getExtension($node->namespaceURI), $node->localName, $values); + $container->loadFromExtension($this->getExtension($node->namespaceURI), $node->localName, $values); } } diff --git a/src/Symfony/Components/DependencyInjection/Loader/YamlFileLoader.php b/src/Symfony/Components/DependencyInjection/Loader/YamlFileLoader.php index 2ba07baa07..544885701b 100644 --- a/src/Symfony/Components/DependencyInjection/Loader/YamlFileLoader.php +++ b/src/Symfony/Components/DependencyInjection/Loader/YamlFileLoader.php @@ -5,7 +5,7 @@ namespace Symfony\Components\DependencyInjection\Loader; use Symfony\Components\DependencyInjection\ContainerInterface; use Symfony\Components\DependencyInjection\Definition; use Symfony\Components\DependencyInjection\Reference; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Resource\FileResource; use Symfony\Components\Yaml\Yaml; @@ -32,63 +32,58 @@ class YamlFileLoader extends FileLoader /** * Loads an array of Yaml files. * - * @param mixed $resource The resource - * @param Boolean $main Whether this is the main load() call - * @param BuilderConfiguration $configuration A BuilderConfiguration instance to use for the configuration + * @param mixed $resource The resource + * @param ContainerBuilder $container A ContainerBuilder instance to use for the configuration * - * @return BuilderConfiguration A BuilderConfiguration instance + * @return ContainerBuilder A ContainerBuilder instance */ - public function load($file, $main = true, BuilderConfiguration $configuration = null) + public function load($file, ContainerBuilder $container = null) { $path = $this->findFile($file); $content = $this->loadFile($path); - if (null === $configuration) { - $configuration = new BuilderConfiguration(); + if (null === $container) { + $container = new ContainerBuilder(); } - $configuration->addResource(new FileResource($path)); + $container->addResource(new FileResource($path)); if (!$content) { - return $configuration; + return $container; } // imports - $this->parseImports($configuration, $content, $file); + $this->parseImports($container, $content, $file); // extensions - $this->loadFromExtensions($configuration, $content); - - if ($main) { - $configuration->mergeExtensionsConfiguration(); - } + $this->loadFromExtensions($container, $content); // parameters if (isset($content['parameters'])) { foreach ($content['parameters'] as $key => $value) { - $configuration->setParameter($key, $this->resolveServices($value)); + $container->setParameter($key, $this->resolveServices($value)); } } // services - $this->parseDefinitions($configuration, $content, $file); + $this->parseDefinitions($container, $content, $file); - return $configuration; + return $container; } - protected function parseImports(BuilderConfiguration $configuration, $content, $file) + protected function parseImports(ContainerBuilder $container, $content, $file) { if (!isset($content['imports'])) { return; } foreach ($content['imports'] as $import) { - $this->parseImport($configuration, $import, $file); + $this->parseImport($container, $import, $file); } } - protected function parseImport(BuilderConfiguration $configuration, $import, $file) + protected function parseImport(ContainerBuilder $container, $import, $file) { $class = null; if (isset($import['class']) && $import['class'] !== get_class($this)) { @@ -109,24 +104,24 @@ class YamlFileLoader extends FileLoader $importedFile = $this->getAbsolutePath($import['resource'], dirname($file)); - return $loader->load($importedFile, false, $configuration); + return $loader->load($importedFile, $container); } - protected function parseDefinitions(BuilderConfiguration $configuration, $content, $file) + protected function parseDefinitions(ContainerBuilder $container, $content, $file) { if (!isset($content['services'])) { return; } foreach ($content['services'] as $id => $service) { - $this->parseDefinition($configuration, $id, $service, $file); + $this->parseDefinition($container, $id, $service, $file); } } - protected function parseDefinition(BuilderConfiguration $configuration, $id, $service, $file) + protected function parseDefinition(ContainerBuilder $container, $id, $service, $file) { if (is_string($service) && 0 === strpos($service, '@')) { - $configuration->setAlias($id, substr($service, 1)); + $container->setAlias($id, substr($service, 1)); return; } @@ -180,7 +175,7 @@ class YamlFileLoader extends FileLoader } } - $configuration->setDefinition($id, $definition); + $container->setDefinition($id, $definition); } protected function loadFile($file) @@ -235,7 +230,7 @@ class YamlFileLoader extends FileLoader return $value; } - protected function loadFromExtensions(BuilderConfiguration $configuration, $content) + protected function loadFromExtensions(ContainerBuilder $container, $content) { foreach ($content as $key => $values) { if (in_array($key, array('imports', 'parameters', 'services'))) { @@ -248,7 +243,7 @@ class YamlFileLoader extends FileLoader $values = array(); } - $configuration->loadFromExtension($this->getExtension($namespace), $tag, $values); + $container->loadFromExtension($this->getExtension($namespace), $tag, $values); } } } diff --git a/src/Symfony/Framework/Bundle/Bundle.php b/src/Symfony/Framework/Bundle/Bundle.php index 83886399c5..ec71117693 100644 --- a/src/Symfony/Framework/Bundle/Bundle.php +++ b/src/Symfony/Framework/Bundle/Bundle.php @@ -35,7 +35,7 @@ abstract class Bundle implements BundleInterface * * @param \Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface $parameterBag A ParameterBagInterface instance * - * @return \Symfony\Components\DependencyInjection\BuilderConfiguration A BuilderConfiguration instance + * @return \Symfony\Components\DependencyInjection\ContainerBuilder A ContainerBuilder instance */ public function buildContainer(ParameterBagInterface $parameterBag) { diff --git a/src/Symfony/Framework/Bundle/BundleInterface.php b/src/Symfony/Framework/Bundle/BundleInterface.php index 5ef45618dd..49a693df9e 100644 --- a/src/Symfony/Framework/Bundle/BundleInterface.php +++ b/src/Symfony/Framework/Bundle/BundleInterface.php @@ -28,7 +28,7 @@ interface BundleInterface * * @param \Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface $parameterBag A ParameterBagInterface instance * - * @return \Symfony\Components\DependencyInjection\BuilderConfiguration A BuilderConfiguration instance + * @return \Symfony\Components\DependencyInjection\ContainerBuilder A ContainerBuilder instance */ public function buildContainer(ParameterBagInterface $parameterBag); diff --git a/src/Symfony/Framework/DependencyInjection/KernelExtension.php b/src/Symfony/Framework/DependencyInjection/KernelExtension.php index 102f01cc01..07fb2b5585 100644 --- a/src/Symfony/Framework/DependencyInjection/KernelExtension.php +++ b/src/Symfony/Framework/DependencyInjection/KernelExtension.php @@ -4,7 +4,7 @@ namespace Symfony\Framework\DependencyInjection; use Symfony\Components\DependencyInjection\Loader\LoaderExtension; use Symfony\Components\DependencyInjection\Loader\XmlFileLoader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; /* * This file is part of the Symfony package. @@ -24,41 +24,41 @@ use Symfony\Components\DependencyInjection\BuilderConfiguration; */ class KernelExtension extends LoaderExtension { - public function testLoad($config, BuilderConfiguration $configuration) + public function testLoad($config, ContainerBuilder $container) { $loader = new XmlFileLoader(array(__DIR__.'/../Resources/config', __DIR__.'/Resources/config')); - $configuration->merge($loader->load('test.xml')); - $configuration->setParameter('kernel.include_core_classes', false); + $container->merge($loader->load('test.xml')); + $container->setParameter('kernel.include_core_classes', false); - return $configuration; + return $container; } /** * Loads the session configuration. * * @param array $config A configuration array - * @param BuilderConfiguration $configuration A BuilderConfiguration instance + * @param ContainerBuilder $container A ContainerBuilder instance * - * @return BuilderConfiguration A BuilderConfiguration instance + * @return ContainerBuilder A ContainerBuilder instance */ - public function sessionLoad($config, BuilderConfiguration $configuration) + public function sessionLoad($config, ContainerBuilder $container) { - if (!$configuration->hasDefinition('session')) { + if (!$container->hasDefinition('session')) { $loader = new XmlFileLoader(array(__DIR__.'/../Resources/config', __DIR__.'/Resources/config')); - $configuration->merge($loader->load('session.xml')); + $container->merge($loader->load('session.xml')); } if (isset($config['default_locale'])) { - $configuration->setParameter('session.default_locale', $config['default_locale']); + $container->setParameter('session.default_locale', $config['default_locale']); } if (isset($config['class'])) { - $configuration->setParameter('session.class', $config['class']); + $container->setParameter('session.class', $config['class']); } foreach (array('name', 'auto_start', 'lifetime', 'path', 'domain', 'secure', 'httponly', 'cache_limiter', 'pdo.db_table') as $name) { if (isset($config['session'][$name])) { - $configuration->setParameter('session.options.'.$name, $config['session'][$name]); + $container->setParameter('session.options.'.$name, $config['session'][$name]); } } @@ -68,16 +68,16 @@ class KernelExtension extends LoaderExtension $class = 'Symfony\\Framework\\FrameworkBundle\\SessionStorage\\'.$class.'SessionStorage'; } - $configuration->setParameter('session.session', 'session.session.'.strtolower($class)); + $container->setParameter('session.session', 'session.session.'.strtolower($class)); } - return $configuration; + return $container; } - public function configLoad($config, BuilderConfiguration $configuration) + public function configLoad($config, ContainerBuilder $container) { if (isset($config['charset'])) { - $configuration->setParameter('kernel.charset', $config['charset']); + $container->setParameter('kernel.charset', $config['charset']); } if (!array_key_exists('compilation', $config)) { @@ -113,13 +113,13 @@ class KernelExtension extends LoaderExtension } } } - $configuration->setParameter('kernel.compiled_classes', $classes); + $container->setParameter('kernel.compiled_classes', $classes); if (array_key_exists('error_handler_level', $config)) { - $configuration->setParameter('error_handler.level', $config['error_handler_level']); + $container->setParameter('error_handler.level', $config['error_handler_level']); } - return $configuration; + return $container; } /** diff --git a/src/Symfony/Framework/Kernel.php b/src/Symfony/Framework/Kernel.php index 3e88fa6fe2..c2f8d23bcd 100644 --- a/src/Symfony/Framework/Kernel.php +++ b/src/Symfony/Framework/Kernel.php @@ -3,8 +3,7 @@ namespace Symfony\Framework; use Symfony\Components\DependencyInjection\ContainerInterface; -use Symfony\Components\DependencyInjection\Builder; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Dumper\PhpDumper; use Symfony\Components\DependencyInjection\Resource\FileResource; use Symfony\Components\DependencyInjection\ParameterBag\ParameterBag; @@ -340,18 +339,18 @@ abstract class Kernel implements HttpKernelInterface, \Serializable { $parameterBag = new ParameterBag($this->getKernelParameters()); - $configuration = new BuilderConfiguration(); + $container = new ContainerBuilder($parameterBag); foreach ($this->bundles as $bundle) { - $configuration->merge($bundle->buildContainer($parameterBag)); + if (null !== $c = $bundle->buildContainer($parameterBag)) { + $container->merge($c); + } if ($this->debug) { - $configuration->addObjectResource($bundle); + $container->addObjectResource($bundle); } } - $configuration->merge($this->registerContainerConfiguration()); - - $container = new Builder($parameterBag); - $container->merge($configuration); + $container->merge($this->registerContainerConfiguration()); + $container->commit(); $container->freeze(); foreach (array('cache', 'logs') as $name) { @@ -374,10 +373,10 @@ abstract class Kernel implements HttpKernelInterface, \Serializable $this->writeCacheFile($file, $content); if ($this->debug) { - $configuration->addObjectResource($this); + $container->addObjectResource($this); // save the resources - $this->writeCacheFile($this->getCacheDir().'/'.$class.'.meta', serialize($configuration->getResources())); + $this->writeCacheFile($this->getCacheDir().'/'.$class.'.meta', serialize($container->getResources())); } } diff --git a/src/Symfony/Framework/KernelBundle.php b/src/Symfony/Framework/KernelBundle.php index eaf8030777..8e223f7c6c 100644 --- a/src/Symfony/Framework/KernelBundle.php +++ b/src/Symfony/Framework/KernelBundle.php @@ -9,7 +9,7 @@ use Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Components\DependencyInjection\ContainerInterface; use Symfony\Components\DependencyInjection\Loader\Loader; use Symfony\Components\DependencyInjection\Loader\XmlFileLoader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; /* * This file is part of the Symfony framework. @@ -34,23 +34,23 @@ class KernelBundle extends Bundle * * @param \Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface $parameterBag A ParameterBagInterface instance * - * @return \Symfony\Components\DependencyInjection\BuilderConfiguration A BuilderConfiguration instance + * @return \Symfony\Components\DependencyInjection\ContainerBuilder A ContainerBuilder instance */ public function buildContainer(ParameterBagInterface $parameterBag) { Loader::registerExtension(new KernelExtension()); - $configuration = new BuilderConfiguration(); + $container = new ContainerBuilder(); $loader = new XmlFileLoader(array(__DIR__.'/../Resources/config', __DIR__.'/Resources/config')); - $configuration->merge($loader->load('services.xml')); + $container->merge($loader->load('services.xml')); if ($parameterBag->get('kernel.debug')) { - $configuration->merge($loader->load('debug.xml')); - $configuration->setDefinition('event_dispatcher', $configuration->findDefinition('debug.event_dispatcher')); + $container->merge($loader->load('debug.xml')); + $container->setDefinition('event_dispatcher', $container->findDefinition('debug.event_dispatcher')); } - return $configuration; + return $container; } /** diff --git a/src/Symfony/Framework/bootstrap.php b/src/Symfony/Framework/bootstrap.php index 438d32e4b6..d11f57d3a9 100644 --- a/src/Symfony/Framework/bootstrap.php +++ b/src/Symfony/Framework/bootstrap.php @@ -132,7 +132,7 @@ use Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Components\DependencyInjection\ContainerInterface; use Symfony\Components\DependencyInjection\Loader\Loader; use Symfony\Components\DependencyInjection\Loader\XmlFileLoader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; @@ -144,7 +144,7 @@ class KernelBundle extends Bundle { Loader::registerExtension(new KernelExtension()); - $configuration = new BuilderConfiguration(); + $configuration = new ContainerBuilder(); $loader = new XmlFileLoader(array(__DIR__.'/../Resources/config', __DIR__.'/Resources/config')); $configuration->merge($loader->load('services.xml')); @@ -173,14 +173,14 @@ namespace Symfony\Framework\DependencyInjection; use Symfony\Components\DependencyInjection\Loader\LoaderExtension; use Symfony\Components\DependencyInjection\Loader\XmlFileLoader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; class KernelExtension extends LoaderExtension { - public function testLoad($config, BuilderConfiguration $configuration) + public function testLoad($config, ContainerBuilder $configuration) { $loader = new XmlFileLoader(array(__DIR__.'/../Resources/config', __DIR__.'/Resources/config')); $configuration->merge($loader->load('test.xml')); @@ -190,7 +190,7 @@ class KernelExtension extends LoaderExtension } - public function sessionLoad($config, BuilderConfiguration $configuration) + public function sessionLoad($config, ContainerBuilder $configuration) { if (!$configuration->hasDefinition('session')) { $loader = new XmlFileLoader(array(__DIR__.'/../Resources/config', __DIR__.'/Resources/config')); @@ -223,7 +223,7 @@ class KernelExtension extends LoaderExtension return $configuration; } - public function configLoad($config, BuilderConfiguration $configuration) + public function configLoad($config, ContainerBuilder $configuration) { if (isset($config['charset'])) { $configuration->setParameter('kernel.charset', $config['charset']); diff --git a/tests/Symfony/Tests/Components/DependencyInjection/BuilderConfigurationTest.php b/tests/Symfony/Tests/Components/DependencyInjection/BuilderConfigurationTest.php deleted file mode 100644 index 4ed0c0b61a..0000000000 --- a/tests/Symfony/Tests/Components/DependencyInjection/BuilderConfigurationTest.php +++ /dev/null @@ -1,211 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Tests\Components\DependencyInjection; - -use Symfony\Components\DependencyInjection\Builder; -use Symfony\Components\DependencyInjection\BuilderConfiguration; -use Symfony\Components\DependencyInjection\Definition; -use Symfony\Components\DependencyInjection\Reference; -use Symfony\Components\DependencyInjection\Resource\FileResource; -use Symfony\Components\DependencyInjection\ParameterBag\ParameterBag; - -class BuilderConfigurationTest extends \PHPUnit_Framework_TestCase -{ - static protected $fixturesPath; - - static public function setUpBeforeClass() - { - self::$fixturesPath = __DIR__.'/Fixtures/'; - } - - /** - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::__construct - */ - public function testConstructor() - { - $definitions = array( - 'foo' => new Definition('FooClass'), - 'bar' => new Definition('BarClass'), - ); - $parameters = array( - 'foo' => 'foo', - 'bar' => 'bar', - ); - $configuration = new BuilderConfiguration($definitions, new ParameterBag($parameters)); - $this->assertEquals($definitions, $configuration->getDefinitions(), '__construct() takes an array of definitions as its first argument'); - $this->assertEquals($parameters, $configuration->getParameterBag()->all(), '__construct() takes a ParameterBag instance as its second argument'); - } - - /** - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::merge - */ - public function testMerge() - { - $configuration = new BuilderConfiguration(); - $configuration->merge(null); - $this->assertEquals(array(), $configuration->getParameterBag()->all(), '->merge() accepts null as an argument'); - $this->assertEquals(array(), $configuration->getDefinitions(), '->merge() accepts null as an argument'); - - $configuration = new BuilderConfiguration(array(), new ParameterBag(array('bar' => 'foo'))); - $configuration1 = new BuilderConfiguration(array(), new ParameterBag(array('foo' => 'bar'))); - $configuration->merge($configuration1); - $this->assertEquals(array('bar' => 'foo', 'foo' => 'bar'), $configuration->getParameterBag()->all(), '->merge() merges current parameters with the loaded ones'); - - $configuration = new BuilderConfiguration(array(), new ParameterBag(array('bar' => 'foo', 'foo' => 'baz'))); - $config = new BuilderConfiguration(array(), new ParameterBag(array('foo' => 'bar'))); - $configuration->merge($config); - $this->assertEquals(array('bar' => 'foo', 'foo' => 'bar'), $configuration->getParameterBag()->all(), '->merge() overrides existing parameters'); - - $configuration = new BuilderConfiguration(array('foo' => new Definition('FooClass'), 'bar' => new Definition('BarClass'))); - $config = new BuilderConfiguration(array('baz' => new Definition('BazClass'))); - $config->setAlias('alias_for_foo', 'foo'); - $configuration->merge($config); - $this->assertEquals(array('foo', 'bar', 'baz'), array_keys($configuration->getDefinitions()), '->merge() merges definitions already defined ones'); - $this->assertEquals(array('alias_for_foo' => 'foo'), $configuration->getAliases(), '->merge() registers defined aliases'); - - $configuration = new BuilderConfiguration(array('foo' => new Definition('FooClass'))); - $config->setDefinition('foo', new Definition('BazClass')); - $configuration->merge($config); - $this->assertEquals('BazClass', $configuration->getDefinition('foo')->getClass(), '->merge() overrides already defined services'); - - $configuration = new BuilderConfiguration(); - $configuration->addResource($a = new FileResource(self::$fixturesPath.'/xml/services1.xml')); - $config = new BuilderConfiguration(); - $config->addResource($b = new FileResource(self::$fixturesPath.'/xml/services2.xml')); - $configuration->merge($config); - $this->assertEquals(array($a, $b), $configuration->getResources(), '->merge() merges resources'); - } - - /** - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::getParameterBag - */ - public function testGetParameterBag() - { - $configuration = new BuilderConfiguration(); - $this->assertEquals(array(), $configuration->getParameterBag()->all(), '->getParameterBag() returns an empty bag if no parameter has been defined'); - - $configuration = new BuilderConfiguration(array(), new ParameterBag(array('foo' => 'bar'))); - $this->assertEquals(array('foo' => 'bar'), $configuration->getParameterBag()->all(), '->getParameterBag() returns the parameter bag passed at construction time'); - } - - /** - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::getParameter - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::setParameter - */ - public function testSetGetParameter() - { - $configuration = new BuilderConfiguration(array(), new ParameterBag(array('foo' => 'bar'))); - $configuration->setParameter('bar', 'foo'); - $this->assertEquals('foo', $configuration->getParameter('bar'), '->setParameter() sets the value of a new parameter'); - - $configuration->setParameter('foo', 'baz'); - $this->assertEquals('baz', $configuration->getParameter('foo'), '->setParameter() overrides previously set parameter'); - - $configuration->setParameter('Foo', 'baz1'); - $this->assertEquals('baz1', $configuration->getParameter('foo'), '->setParameter() converts the key to lowercase'); - $this->assertEquals('baz1', $configuration->getParameter('FOO'), '->getParameter() converts the key to lowercase'); - - try { - $configuration->getParameter('baba'); - $this->fail('->getParameter() throws an \InvalidArgumentException if the key does not exist'); - } catch (\Exception $e) { - $this->assertInstanceOf('\InvalidArgumentException', $e, '->getParameter() throws an \InvalidArgumentException if the key does not exist'); - $this->assertEquals('The parameter "baba" must be defined.', $e->getMessage(), '->getParameter() throws an \InvalidArgumentException if the key does not exist'); - } - } - - /** - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::setAlias - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::getAlias - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::hasAlias - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::getAliases - */ - public function testAliases() - { - $configuration = new BuilderConfiguration(); - $configuration->setAlias('bar', 'foo'); - $this->assertEquals('foo', $configuration->getAlias('bar'), '->setAlias() defines a new alias'); - $this->assertTrue($configuration->hasAlias('bar'), '->hasAlias() returns true if the alias is defined'); - $this->assertFalse($configuration->hasAlias('baba'), '->hasAlias() returns false if the alias is not defined'); - - try { - $configuration->getAlias('baba'); - $this->fail('->getAlias() throws an \InvalidArgumentException if the alias does not exist'); - } catch (\Exception $e) { - $this->assertInstanceOf('\InvalidArgumentException', $e, '->getAlias() throws an \InvalidArgumentException if the alias does not exist'); - $this->assertEquals('The service alias "baba" does not exist.', $e->getMessage(), '->getAlias() throws an \InvalidArgumentException if the alias does not exist'); - } - - $configuration->setAlias('barbar', 'foofoo'); - $this->assertEquals(array('bar' => 'foo', 'barbar' => 'foofoo'), $configuration->getAliases(), '->getAliases() returns an array of all defined aliases'); - - $configuration->addAliases(array('foo' => 'bar')); - $this->assertEquals(array('bar' => 'foo', 'barbar' => 'foofoo', 'foo' => 'bar'), $configuration->getAliases(), '->addAliases() adds some aliases'); - } - - /** - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::setDefinitions - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::addDefinitions - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::hasDefinition - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::getDefinition - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::setDefinition - */ - public function testDefinitions() - { - $configuration = new BuilderConfiguration(); - $definitions = array( - 'foo' => new Definition('FooClass'), - 'bar' => new Definition('BarClass'), - ); - $configuration->setDefinitions($definitions); - $this->assertEquals($definitions, $configuration->getDefinitions(), '->setDefinitions() sets the service definitions'); - $this->assertTrue($configuration->hasDefinition('foo'), '->hasDefinition() returns true if a service definition exists'); - $this->assertFalse($configuration->hasDefinition('foobar'), '->hasDefinition() returns false if a service definition does not exist'); - - $configuration->setDefinition('foobar', $foo = new Definition('FooBarClass')); - $this->assertEquals($foo, $configuration->getDefinition('foobar'), '->getDefinition() returns a service definition if defined'); - $this->assertTrue($configuration->setDefinition('foobar', new Definition('FooBarClass')) === $configuration, '->setDefinition() implements a fuild interface'); - - $configuration->addDefinitions($defs = array('foobar' => new Definition('FooBarClass'))); - $this->assertEquals(array_merge($definitions, $defs), $configuration->getDefinitions(), '->addDefinitions() adds the service definitions'); - - try { - $configuration->getDefinition('baz'); - $this->fail('->getDefinition() throws an InvalidArgumentException if the service definition does not exist'); - } catch (\Exception $e) { - $this->assertInstanceOf('\InvalidArgumentException', $e, '->getDefinition() throws an InvalidArgumentException if the service definition does not exist'); - $this->assertEquals('The service definition "baz" does not exist.', $e->getMessage(), '->getDefinition() throws an InvalidArgumentException if the service definition does not exist'); - } - } - - /** - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::findDefinition - */ - public function testFindDefinition() - { - $configuration = new BuilderConfiguration(array('foo' => $definition = new Definition('FooClass'))); - $configuration->setAlias('bar', 'foo'); - $configuration->setAlias('foobar', 'bar'); - $this->assertEquals($definition, $configuration->findDefinition('foobar'), '->findDefinition() returns a Definition'); - } - - /** - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::getResources - * @covers Symfony\Components\DependencyInjection\BuilderConfiguration::addResource - */ - public function testResources() - { - $configuration = new BuilderConfiguration(); - $configuration->addResource($a = new FileResource(self::$fixturesPath.'/xml/services1.xml')); - $configuration->addResource($b = new FileResource(self::$fixturesPath.'/xml/services2.xml')); - $this->assertEquals(array($a, $b), $configuration->getResources(), '->getResources() returns an array of resources read for the current configuration'); - } -} diff --git a/tests/Symfony/Tests/Components/DependencyInjection/BuilderTest.php b/tests/Symfony/Tests/Components/DependencyInjection/ContainerBuilderTest.php similarity index 72% rename from tests/Symfony/Tests/Components/DependencyInjection/BuilderTest.php rename to tests/Symfony/Tests/Components/DependencyInjection/ContainerBuilderTest.php index e0324f1bb6..fc1d03579d 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/BuilderTest.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/ContainerBuilderTest.php @@ -10,26 +10,26 @@ namespace Symfony\Tests\Components\DependencyInjection; -use Symfony\Components\DependencyInjection\Builder; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\ContainerInterface; -use Symfony\Components\DependencyInjection\BuilderConfiguration; use Symfony\Components\DependencyInjection\Definition; use Symfony\Components\DependencyInjection\Reference; use Symfony\Components\DependencyInjection\ParameterBag\ParameterBag; +use Symfony\Components\DependencyInjection\Resource\FileResource; require_once __DIR__.'/Fixtures/includes/classes.php'; -class BuilderTest extends \PHPUnit_Framework_TestCase +class ContainerBuilderTest extends \PHPUnit_Framework_TestCase { /** - * @covers Symfony\Components\DependencyInjection\Builder::setDefinitions - * @covers Symfony\Components\DependencyInjection\Builder::getDefinitions - * @covers Symfony\Components\DependencyInjection\Builder::setDefinition - * @covers Symfony\Components\DependencyInjection\Builder::getDefinition + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::setDefinitions + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::getDefinitions + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::setDefinition + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::getDefinition */ public function testDefinitions() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $definitions = array( 'foo' => new Definition('FooClass'), 'bar' => new Definition('BarClass'), @@ -56,22 +56,22 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::register + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::register */ public function testRegister() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->register('foo', 'FooClass'); $this->assertTrue($builder->hasDefinition('foo'), '->register() registers a new service definition'); $this->assertInstanceOf('Symfony\Components\DependencyInjection\Definition', $builder->getDefinition('foo'), '->register() returns the newly created Definition instance'); } /** - * @covers Symfony\Components\DependencyInjection\Builder::has + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::has */ public function testHas() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $this->assertFalse($builder->has('foo'), '->has() returns false if the service does not exist'); $builder->register('foo', 'FooClass'); $this->assertTrue($builder->has('foo'), '->has() returns true if a service definition exists'); @@ -80,11 +80,11 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::get + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::get */ public function testGet() { - $builder = new Builder(); + $builder = new ContainerBuilder(); try { $builder->get('foo'); $this->fail('->get() throws an InvalidArgumentException if the service does not exist'); @@ -116,11 +116,11 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::getServiceIds + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::getServiceIds */ public function testGetServiceIds() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->register('foo', 'stdClass'); $builder->bar = $bar = new \stdClass(); $builder->register('bar', 'stdClass'); @@ -128,13 +128,13 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::setAlias - * @covers Symfony\Components\DependencyInjection\Builder::hasAlias - * @covers Symfony\Components\DependencyInjection\Builder::getAlias + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::setAlias + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::hasAlias + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::getAlias */ public function testAliases() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->register('foo', 'stdClass'); $builder->setAlias('bar', 'foo'); $this->assertTrue($builder->hasAlias('bar'), '->hasAlias() returns true if the alias exists'); @@ -153,11 +153,11 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::getAliases + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::getAliases */ public function testGetAliases() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->setAlias('bar', 'foo'); $builder->setAlias('foobar', 'foo'); $this->assertEquals(array('bar' => 'foo', 'foobar' => 'foo'), $builder->getAliases(), '->getAliases() returns all service aliases'); @@ -168,32 +168,32 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::setAliases + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::setAliases */ public function testSetAliases() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->setAliases(array('bar' => 'foo', 'foobar' => 'foo')); $this->assertEquals(array('bar' => 'foo', 'foobar' => 'foo'), $builder->getAliases(), '->getAliases() returns all service aliases'); } /** - * @covers Symfony\Components\DependencyInjection\Builder::addAliases + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::addAliases */ public function testAddAliases() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->setAliases(array('bar' => 'foo')); $builder->addAliases(array('foobar' => 'foo')); $this->assertEquals(array('bar' => 'foo', 'foobar' => 'foo'), $builder->getAliases(), '->getAliases() returns all service aliases'); } /** - * @covers Symfony\Components\DependencyInjection\Builder::createService + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::createService */ public function testCreateService() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->register('foo1', 'FooClass')->setFile(__DIR__.'/Fixtures/includes/foo.php'); $this->assertInstanceOf('\FooClass', $builder->get('foo1'), '->createService() requires the file defined by the service definition'); $builder->register('foo2', 'FooClass')->setFile(__DIR__.'/Fixtures/includes/%file%.php'); @@ -202,22 +202,22 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::createService + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::createService */ public function testCreateServiceClass() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->register('foo1', '%class%'); $builder->setParameter('class', 'stdClass'); $this->assertInstanceOf('\stdClass', $builder->get('foo1'), '->createService() replaces parameters in the class provided by the service definition'); } /** - * @covers Symfony\Components\DependencyInjection\Builder::createService + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::createService */ public function testCreateServiceArguments() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->register('bar', 'stdClass'); $builder->register('foo1', 'FooClass')->addArgument(array('foo' => '%value%', '%value%' => 'foo', new Reference('bar'))); $builder->setParameter('value', 'bar'); @@ -225,11 +225,11 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::createService + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::createService */ public function testCreateServiceFactoryMethod() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->register('bar', 'stdClass'); $builder->register('foo1', 'FooClass')->setFactoryMethod('getInstance')->addArgument(array('foo' => '%value%', '%value%' => 'foo', new Reference('bar'))); $builder->setParameter('value', 'bar'); @@ -238,11 +238,11 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::createService + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::createService */ public function testCreateServiceFactoryService() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->register('baz_service')->setFactoryService('baz_factory')->setFactoryMethod('getInstance'); $builder->register('baz_factory', 'BazClass'); @@ -250,11 +250,11 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::createService + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::createService */ public function testCreateServiceMethodCalls() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->register('bar', 'stdClass'); $builder->register('foo1', 'FooClass')->addMethodCall('setBar', array(array('%value%', new Reference('bar')))); $builder->setParameter('value', 'bar'); @@ -262,11 +262,11 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::createService + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::createService */ public function testCreateServiceConfigurator() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->register('foo1', 'FooClass')->setConfigurator('sc_configure'); $this->assertTrue($builder->get('foo1')->configured, '->createService() calls the configurator'); @@ -289,23 +289,23 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::resolveValue + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::resolveValue */ public function testResolveValue() { - $this->assertEquals('foo', Builder::resolveValue('foo', array()), '->resolveValue() returns its argument unmodified if no placeholders are found'); - $this->assertEquals('I\'m a bar', Builder::resolveValue('I\'m a %foo%', array('foo' => 'bar')), '->resolveValue() replaces placeholders by their values'); - $this->assertTrue(Builder::resolveValue('%foo%', array('foo' => true)) === true, '->resolveValue() replaces arguments that are just a placeholder by their value without casting them to strings'); + $this->assertEquals('foo', ContainerBuilder::resolveValue('foo', array()), '->resolveValue() returns its argument unmodified if no placeholders are found'); + $this->assertEquals('I\'m a bar', ContainerBuilder::resolveValue('I\'m a %foo%', array('foo' => 'bar')), '->resolveValue() replaces placeholders by their values'); + $this->assertTrue(ContainerBuilder::resolveValue('%foo%', array('foo' => true)) === true, '->resolveValue() replaces arguments that are just a placeholder by their value without casting them to strings'); - $this->assertEquals(array('bar' => 'bar'), Builder::resolveValue(array('%foo%' => '%foo%'), array('foo' => 'bar')), '->resolveValue() replaces placeholders in keys and values of arrays'); + $this->assertEquals(array('bar' => 'bar'), ContainerBuilder::resolveValue(array('%foo%' => '%foo%'), array('foo' => 'bar')), '->resolveValue() replaces placeholders in keys and values of arrays'); - $this->assertEquals(array('bar' => array('bar' => array('bar' => 'bar'))), Builder::resolveValue(array('%foo%' => array('%foo%' => array('%foo%' => '%foo%'))), array('foo' => 'bar')), '->resolveValue() replaces placeholders in nested arrays'); + $this->assertEquals(array('bar' => array('bar' => array('bar' => 'bar'))), ContainerBuilder::resolveValue(array('%foo%' => array('%foo%' => array('%foo%' => '%foo%'))), array('foo' => 'bar')), '->resolveValue() replaces placeholders in nested arrays'); - $this->assertEquals('I\'m a %foo%', Builder::resolveValue('I\'m a %%foo%%', array('foo' => 'bar')), '->resolveValue() supports % escaping by doubling it'); - $this->assertEquals('I\'m a bar %foo bar', Builder::resolveValue('I\'m a %foo% %%foo %foo%', array('foo' => 'bar')), '->resolveValue() supports % escaping by doubling it'); + $this->assertEquals('I\'m a %foo%', ContainerBuilder::resolveValue('I\'m a %%foo%%', array('foo' => 'bar')), '->resolveValue() supports % escaping by doubling it'); + $this->assertEquals('I\'m a bar %foo bar', ContainerBuilder::resolveValue('I\'m a %foo% %%foo %foo%', array('foo' => 'bar')), '->resolveValue() supports % escaping by doubling it'); try { - Builder::resolveValue('%foobar%', array()); + ContainerBuilder::resolveValue('%foobar%', array()); $this->fail('->resolveValue() throws a RuntimeException if a placeholder references a non-existant parameter'); } catch (\Exception $e) { $this->assertInstanceOf('\RuntimeException', $e, '->resolveValue() throws a RuntimeException if a placeholder references a non-existant parameter'); @@ -313,7 +313,7 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } try { - Builder::resolveValue('foo %foobar% bar', array()); + ContainerBuilder::resolveValue('foo %foobar% bar', array()); $this->fail('->resolveValue() throws a RuntimeException if a placeholder references a non-existant parameter'); } catch (\Exception $e) { $this->assertInstanceOf('\RuntimeException', $e, '->resolveValue() throws a RuntimeException if a placeholder references a non-existant parameter'); @@ -322,57 +322,51 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::resolveServices + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::resolveServices */ public function testResolveServices() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder->register('foo', 'FooClass'); $this->assertEquals($builder->get('foo'), $builder->resolveServices(new Reference('foo')), '->resolveServices() resolves service references to service instances'); $this->assertEquals(array('foo' => array('foo', $builder->get('foo'))), $builder->resolveServices(array('foo' => array('foo', new Reference('foo')))), '->resolveServices() resolves service references to service instances in nested arrays'); } /** - * @covers Symfony\Components\DependencyInjection\Builder::merge + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::merge */ public function testMerge() { - $container = new Builder(); - $container->merge(null); - $this->assertEquals(array(), $container->getParameterBag()->all(), '->merge() accepts null as an argument'); - $this->assertEquals(array(), $container->getDefinitions(), '->merge() accepts null as an argument'); - - $container = new Builder(new ParameterBag(array('bar' => 'foo'))); - $config = new BuilderConfiguration(array(), new ParameterBag(array('foo' => 'bar'))); + $container = new ContainerBuilder(new ParameterBag(array('bar' => 'foo'))); + $config = new ContainerBuilder(new ParameterBag(array('foo' => 'bar'))); $container->merge($config); $this->assertEquals(array('bar' => 'foo', 'foo' => 'bar'), $container->getParameterBag()->all(), '->merge() merges current parameters with the loaded ones'); - $container = new Builder(new ParameterBag(array('bar' => 'foo', 'foo' => 'baz'))); - $config = new BuilderConfiguration(array(), new ParameterBag(array('foo' => 'bar'))); - $container->merge($config); - $this->assertEquals(array('bar' => 'foo', 'foo' => 'baz'), $container->getParameterBag()->all(), '->merge() does not change the already defined parameters'); - - $container = new Builder(new ParameterBag(array('bar' => 'foo'))); - $config = new BuilderConfiguration(array(), new ParameterBag(array('foo' => '%bar%'))); + $container = new ContainerBuilder(new ParameterBag(array('bar' => 'foo'))); + $config = new ContainerBuilder(new ParameterBag(array('foo' => '%bar%'))); $container->merge($config); +////// FIXME + $container->commit(); $this->assertEquals(array('bar' => 'foo', 'foo' => 'foo'), $container->getParameterBag()->all(), '->merge() evaluates the values of the parameters towards already defined ones'); - $container = new Builder(new ParameterBag(array('bar' => 'foo'))); - $config = new BuilderConfiguration(array(), new ParameterBag(array('foo' => '%bar%', 'baz' => '%foo%'))); + $container = new ContainerBuilder(new ParameterBag(array('bar' => 'foo'))); + $config = new ContainerBuilder(new ParameterBag(array('foo' => '%bar%', 'baz' => '%foo%'))); $container->merge($config); +////// FIXME + $container->commit(); $this->assertEquals(array('bar' => 'foo', 'foo' => 'foo', 'baz' => 'foo'), $container->getParameterBag()->all(), '->merge() evaluates the values of the parameters towards already defined ones'); - $container = new Builder(); + $container = new ContainerBuilder(); $container->register('foo', 'FooClass'); $container->register('bar', 'BarClass'); - $config = new BuilderConfiguration(); + $config = new ContainerBuilder(); $config->setDefinition('baz', new Definition('BazClass')); $config->setAlias('alias_for_foo', 'foo'); $container->merge($config); $this->assertEquals(array('foo', 'bar', 'baz'), array_keys($container->getDefinitions()), '->merge() merges definitions already defined ones'); $this->assertEquals(array('alias_for_foo' => 'foo'), $container->getAliases(), '->merge() registers defined aliases'); - $container = new Builder(); + $container = new ContainerBuilder(); $container->register('foo', 'FooClass'); $config->setDefinition('foo', new Definition('BazClass')); $container->merge($config); @@ -380,11 +374,11 @@ class BuilderTest extends \PHPUnit_Framework_TestCase } /** - * @covers Symfony\Components\DependencyInjection\Builder::findAnnotatedServiceIds + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::findAnnotatedServiceIds */ public function testFindAnnotatedServiceIds() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $builder ->register('foo', 'FooClass') ->addAnnotation('foo', array('foo' => 'foo')) @@ -399,4 +393,28 @@ class BuilderTest extends \PHPUnit_Framework_TestCase ), '->findAnnotatedServiceIds() returns an array of service ids and its annotation attributes'); $this->assertEquals(array(), $builder->findAnnotatedServiceIds('foobar'), '->findAnnotatedServiceIds() returns an empty array if there is annotated services'); } + + /** + * @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'); + } + + /** + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::getResources + * @covers Symfony\Components\DependencyInjection\ContainerBuilder::addResource + */ + public function testResources() + { + $container = new ContainerBuilder(); + $container->addResource($a = new FileResource(__DIR__.'/Fixtures/xml/services1.xml')); + $container->addResource($b = new FileResource(__DIR__.'/Fixtures/xml/services2.xml')); + $this->assertEquals(array($a, $b), $container->getResources(), '->getResources() returns an array of resources read for the current configuration'); + } } diff --git a/tests/Symfony/Tests/Components/DependencyInjection/CrossCheckTest.php b/tests/Symfony/Tests/Components/DependencyInjection/CrossCheckTest.php index 8670ae206b..4c0349595c 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/CrossCheckTest.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/CrossCheckTest.php @@ -10,7 +10,7 @@ namespace Symfony\Tests\Components\DependencyInjection; -use Symfony\Components\DependencyInjection\Builder; +use Symfony\Components\DependencyInjection\ContainerBuilder; class CrossCheckTest extends \PHPUnit_Framework_TestCase { @@ -32,7 +32,7 @@ class CrossCheckTest extends \PHPUnit_Framework_TestCase $loaderClass = 'Symfony\\Components\\DependencyInjection\\Loader\\'.ucfirst($type).'FileLoader'; $dumperClass = 'Symfony\\Components\\DependencyInjection\\Dumper\\'.ucfirst($type).'Dumper'; - $container1 = new Builder(); + $container1 = new ContainerBuilder(); $loader1 = new $loaderClass($container1); $loader1->load(self::$fixturesPath.'/'.$type.'/'.$fixture); $container1->setParameter('path', self::$fixturesPath.'/includes'); @@ -41,7 +41,7 @@ class CrossCheckTest extends \PHPUnit_Framework_TestCase $tmp = tempnam('sf_service_container', 'sf'); file_put_contents($tmp, $dumper->dump()); - $container2 = new Builder(); + $container2 = new ContainerBuilder(); $loader2 = new $loaderClass($container2); $loader2->load($tmp); $container2->setParameter('path', self::$fixturesPath.'/includes'); diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Dumper/DumperTest.php b/tests/Symfony/Tests/Components/DependencyInjection/Dumper/DumperTest.php index 0822104d71..926781bdcb 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Dumper/DumperTest.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/Dumper/DumperTest.php @@ -10,14 +10,14 @@ namespace Symfony\Tests\Components\DependencyInjection\Dumper; -use Symfony\Components\DependencyInjection\Builder; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Dumper\Dumper; class DumperTest extends \PHPUnit_Framework_TestCase { public function testDump() { - $builder = new Builder(); + $builder = new ContainerBuilder(); $dumper = new ProjectDumper($builder); try { $dumper->dump(); diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Dumper/GraphvizDumperTest.php b/tests/Symfony/Tests/Components/DependencyInjection/Dumper/GraphvizDumperTest.php index 0abe7fccbf..03c79583f0 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Dumper/GraphvizDumperTest.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/Dumper/GraphvizDumperTest.php @@ -10,7 +10,7 @@ namespace Symfony\Tests\Components\DependencyInjection\Dumper; -use Symfony\Components\DependencyInjection\Builder; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Dumper\GraphvizDumper; class GraphvizDumperTest extends \PHPUnit_Framework_TestCase @@ -24,11 +24,11 @@ class GraphvizDumperTest extends \PHPUnit_Framework_TestCase public function testDump() { - $dumper = new GraphvizDumper($container = new Builder()); + $dumper = new GraphvizDumper($container = new ContainerBuilder()); $this->assertStringEqualsFile(self::$fixturesPath.'/graphviz/services1.dot', $dumper->dump(), '->dump() dumps an empty container as an empty dot file'); - $container = new Builder(); + $container = new ContainerBuilder(); $dumper = new GraphvizDumper($container); $container = include self::$fixturesPath.'/containers/container9.php'; diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Dumper/PhpDumperTest.php b/tests/Symfony/Tests/Components/DependencyInjection/Dumper/PhpDumperTest.php index 0cd6a277e1..47cffb45b2 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Dumper/PhpDumperTest.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/Dumper/PhpDumperTest.php @@ -10,7 +10,7 @@ namespace Symfony\Tests\Components\DependencyInjection\Dumper; -use Symfony\Components\DependencyInjection\Builder; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Dumper\PhpDumper; use Symfony\Components\DependencyInjection\ParameterBag\ParameterBag; use Symfony\Components\DependencyInjection\Reference; @@ -26,12 +26,12 @@ class PhpDumperTest extends \PHPUnit_Framework_TestCase public function testDump() { - $dumper = new PhpDumper($container = new Builder()); + $dumper = new PhpDumper($container = new ContainerBuilder()); $this->assertStringEqualsFile(self::$fixturesPath.'/php/services1.php', $dumper->dump(), '->dump() dumps an empty container as an empty PHP class'); $this->assertStringEqualsFile(self::$fixturesPath.'/php/services1-1.php', $dumper->dump(array('class' => 'Container', 'base_class' => 'AbstractContainer')), '->dump() takes a class and a base_class options'); - $container = new Builder(); + $container = new ContainerBuilder(); $dumper = new PhpDumper($container); } @@ -40,7 +40,7 @@ class PhpDumperTest extends \PHPUnit_Framework_TestCase */ public function testExportParameters() { - $dumper = new PhpDumper($container = new Builder(new ParameterBag(array('foo' => new Reference('foo'))))); + $dumper = new PhpDumper($container = new ContainerBuilder(new ParameterBag(array('foo' => new Reference('foo'))))); $dumper->dump(); } @@ -57,7 +57,7 @@ class PhpDumperTest extends \PHPUnit_Framework_TestCase $dumper = new PhpDumper($container); $this->assertEquals(str_replace('%path%', str_replace('\\','\\\\',self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), file_get_contents(self::$fixturesPath.'/php/services9.php')), $dumper->dump(), '->dump() dumps services'); - $dumper = new PhpDumper($container = new Builder()); + $dumper = new PhpDumper($container = new ContainerBuilder()); $container->register('foo', 'FooClass')->addArgument(new \stdClass()); try { $dumper->dump(); diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Dumper/XmlDumperTest.php b/tests/Symfony/Tests/Components/DependencyInjection/Dumper/XmlDumperTest.php index 84f2e6570d..2dfd7cfa14 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Dumper/XmlDumperTest.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/Dumper/XmlDumperTest.php @@ -10,7 +10,7 @@ namespace Symfony\Tests\Components\DependencyInjection\Dumper; -use Symfony\Components\DependencyInjection\Builder; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Dumper\XmlDumper; class XmlDumperTest extends \PHPUnit_Framework_TestCase @@ -24,11 +24,11 @@ class XmlDumperTest extends \PHPUnit_Framework_TestCase public function testDump() { - $dumper = new XmlDumper($container = new Builder()); + $dumper = new XmlDumper($container = new ContainerBuilder()); $this->assertXmlStringEqualsXmlFile(self::$fixturesPath.'/xml/services1.xml', $dumper->dump(), '->dump() dumps an empty container as an empty XML file'); - $container = new Builder(); + $container = new ContainerBuilder(); $dumper = new XmlDumper($container); } @@ -52,7 +52,7 @@ class XmlDumperTest extends \PHPUnit_Framework_TestCase $dumper = new XmlDumper($container); $this->assertEquals(str_replace('%path%', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR, file_get_contents(self::$fixturesPath.'/xml/services9.xml')), $dumper->dump(), '->dump() dumps services'); - $dumper = new XmlDumper($container = new Builder()); + $dumper = new XmlDumper($container = new ContainerBuilder()); $container->register('foo', 'FooClass')->addArgument(new \stdClass()); try { $dumper->dump(); diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Dumper/YamlDumperTest.php b/tests/Symfony/Tests/Components/DependencyInjection/Dumper/YamlDumperTest.php index d82bc08c1e..5e19d56d59 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Dumper/YamlDumperTest.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/Dumper/YamlDumperTest.php @@ -10,7 +10,7 @@ namespace Symfony\Tests\Components\DependencyInjection\Dumper; -use Symfony\Components\DependencyInjection\Builder; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Dumper\YamlDumper; class YamlDumperTest extends \PHPUnit_Framework_TestCase @@ -24,11 +24,11 @@ class YamlDumperTest extends \PHPUnit_Framework_TestCase public function testDump() { - $dumper = new YamlDumper($container = new Builder()); + $dumper = new YamlDumper($container = new ContainerBuilder()); $this->assertStringEqualsFile(self::$fixturesPath.'/yaml/services1.yml', $dumper->dump(), '->dump() dumps an empty container as an empty YAML file'); - $container = new Builder(); + $container = new ContainerBuilder(); $dumper = new YamlDumper($container); } @@ -45,7 +45,7 @@ class YamlDumperTest extends \PHPUnit_Framework_TestCase $dumper = new YamlDumper($container); $this->assertEquals(str_replace('%path%', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR, file_get_contents(self::$fixturesPath.'/yaml/services9.yml')), $dumper->dump(), '->dump() dumps services'); - $dumper = new YamlDumper($container = new Builder()); + $dumper = new YamlDumper($container = new ContainerBuilder()); $container->register('foo', 'FooClass')->addArgument(new \stdClass()); try { $dumper->dump(); diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/containers/container10.php b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/containers/container10.php index ada56bb004..9e574dd71a 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/containers/container10.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/containers/container10.php @@ -2,10 +2,10 @@ require_once __DIR__.'/../includes/classes.php'; -use Symfony\Components\DependencyInjection\Builder; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Reference; -$container = new Builder(); +$container = new ContainerBuilder(); $container-> register('foo', 'FooClass')-> addArgument(new Reference('bar')) diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/containers/container8.php b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/containers/container8.php index 62ac583a0b..59331078f6 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/containers/container8.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/containers/container8.php @@ -1,9 +1,9 @@ 'bar', 'bar' => 'foo is %foo bar', 'values' => array(true, false, null, 0, 1000.3, 'true', 'false', 'null'), diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/containers/container9.php b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/containers/container9.php index ea95af9fea..177427aa9d 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/containers/container9.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/containers/container9.php @@ -3,11 +3,11 @@ require_once __DIR__.'/../includes/classes.php'; use Symfony\Components\DependencyInjection\ContainerInterface; -use Symfony\Components\DependencyInjection\Builder; +use Symfony\Components\DependencyInjection\ContainerBuilder; use Symfony\Components\DependencyInjection\Reference; use Symfony\Components\DependencyInjection\Parameter; -$container = new Builder(); +$container = new ContainerBuilder(); $container-> register('foo', 'FooClass')-> addAnnotation('foo', array('foo' => 'foo'))-> diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services1.dot b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services1.dot index 8a5df3bcc7..8754e443b1 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services1.dot +++ b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services1.dot @@ -3,5 +3,5 @@ digraph sc { node [fontsize="11" fontname="Arial" shape="record"]; edge [fontsize="9" fontname="Arial" color="grey" arrowhead="open" arrowsize="0.5"]; - node_service_container [label="service_container\nSymfony\\Components\\DependencyInjection\\Builder\n", shape=record, fillcolor="#9999ff", style="filled"]; + node_service_container [label="service_container\nSymfony\\Components\\DependencyInjection\\ContainerBuilder\n", shape=record, fillcolor="#9999ff", style="filled"]; } diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services10-1.dot b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services10-1.dot index cc15227c50..ca11dbcdc7 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services10-1.dot +++ b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services10-1.dot @@ -4,7 +4,7 @@ digraph sc { edge [fontsize="12" fontname="Verdana" color="white" arrowhead="closed" arrowsize="1"]; node_foo [label="foo\nFooClass\n", shape=square, fillcolor="grey", style="filled"]; - node_service_container [label="service_container\nSymfony\\Components\\DependencyInjection\\Builder\n", shape=square, fillcolor="green", style="empty"]; + node_service_container [label="service_container\nSymfony\\Components\\DependencyInjection\\ContainerBuilder\n", shape=square, fillcolor="green", style="empty"]; node_bar [label="bar\n\n", shape=square, fillcolor="red", style="empty"]; node_foo -> node_bar [label="" style="filled"]; } diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services10.dot b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services10.dot index 17fdadb0af..908e28f3e7 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services10.dot +++ b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services10.dot @@ -4,7 +4,7 @@ digraph sc { edge [fontsize="9" fontname="Arial" color="grey" arrowhead="open" arrowsize="0.5"]; node_foo [label="foo\nFooClass\n", shape=record, fillcolor="#eeeeee", style="filled"]; - node_service_container [label="service_container\nSymfony\\Components\\DependencyInjection\\Builder\n", shape=record, fillcolor="#9999ff", style="filled"]; + node_service_container [label="service_container\nSymfony\\Components\\DependencyInjection\\ContainerBuilder\n", shape=record, fillcolor="#9999ff", style="filled"]; node_bar [label="bar\n\n", shape=record, fillcolor="#ff9999", style="filled"]; node_foo -> node_bar [label="" style="filled"]; } diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services9.dot b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services9.dot index f2fc4689d4..5fd2176cc6 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services9.dot +++ b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/graphviz/services9.dot @@ -9,7 +9,7 @@ digraph sc { node_foo_bar [label="foo_bar\nFooClass\n", shape=record, fillcolor="#eeeeee", style="filled"]; node_method_call1 [label="method_call1\nFooClass\n", shape=record, fillcolor="#eeeeee", style="filled"]; node_factory_service [label="factory_service\n\n", shape=record, fillcolor="#eeeeee", style="filled"]; - node_service_container [label="service_container\nSymfony\\Components\\DependencyInjection\\Builder\n", shape=record, fillcolor="#9999ff", style="filled"]; + node_service_container [label="service_container\nSymfony\\Components\\DependencyInjection\\ContainerBuilder\n", shape=record, fillcolor="#9999ff", style="filled"]; node_foobaz [label="foobaz\n\n", shape=record, fillcolor="#ff9999", style="filled"]; node_foo -> node_foo_baz [label="" style="filled"]; node_foo -> node_service_container [label="" style="filled"]; diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/includes/ProjectExtension.php b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/includes/ProjectExtension.php index 53ac48d787..810411f453 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/includes/ProjectExtension.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/includes/ProjectExtension.php @@ -1,12 +1,12 @@ setDefinition('project.service.bar', new Definition('FooClass')); $configuration->setParameter('project.parameter.bar', isset($config['foo']) ? $config['foo'] : 'foobar'); diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/includes/ProjectWithXsdExtension.php b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/includes/ProjectWithXsdExtension.php index 299e72a62d..4f9ea74aa4 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/includes/ProjectWithXsdExtension.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/Fixtures/includes/ProjectWithXsdExtension.php @@ -1,6 +1,6 @@ load('foo', array(), new BuilderConfiguration()); + $extension->load('foo', array(), new ContainerBuilder()); $this->fail('->load() throws an InvalidArgumentException if the tag does not exist'); } catch (\Exception $e) { $this->assertInstanceOf('\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the tag does not exist'); $this->assertEquals('The tag "project:foo" is not defined in the "project" extension.', $e->getMessage(), '->load() throws an InvalidArgumentException if the tag does not exist'); } - $extension->load('bar', array('foo' => 'bar'), $config = new BuilderConfiguration()); + $extension->load('bar', array('foo' => 'bar'), $config = new ContainerBuilder()); $this->assertEquals(array('project.parameter.bar' => 'bar', 'project.parameter.foo' => 'bar'), $config->getParameterBag()->all(), '->load() calls the method tied to the given tag'); } } diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Loader/LoaderTest.php b/tests/Symfony/Tests/Components/DependencyInjection/Loader/LoaderTest.php index 3194e53cd8..7966389071 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Loader/LoaderTest.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/Loader/LoaderTest.php @@ -13,11 +13,11 @@ namespace Symfony\Tests\Components\DependencyInjection\Loader; require_once __DIR__.'/../Fixtures/includes/ProjectExtension.php'; use Symfony\Components\DependencyInjection\Loader\Loader; -use Symfony\Components\DependencyInjection\BuilderConfiguration; +use Symfony\Components\DependencyInjection\ContainerBuilder; class ProjectLoader1 extends Loader { - public function load($resource, $main = true, BuilderConfiguration $configuration = null) + public function load($resource, ContainerBuilder $container = null) { } } diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Loader/XmlFileLoaderTest.php b/tests/Symfony/Tests/Components/DependencyInjection/Loader/XmlFileLoaderTest.php index 40b08229a7..a2933c4cb6 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Loader/XmlFileLoaderTest.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/Loader/XmlFileLoaderTest.php @@ -173,6 +173,7 @@ class XmlFileLoaderTest extends \PHPUnit_Framework_TestCase // extension without an XSD $config = $loader->load('extensions/services1.xml'); + $config->commit(); $services = $config->getDefinitions(); $parameters = $config->getParameterBag()->all(); @@ -184,6 +185,7 @@ class XmlFileLoaderTest extends \PHPUnit_Framework_TestCase // extension with an XSD $config = $loader->load('extensions/services2.xml'); + $config->commit(); $services = $config->getDefinitions(); $parameters = $config->getParameterBag()->all(); diff --git a/tests/Symfony/Tests/Components/DependencyInjection/Loader/YamlFileLoaderTest.php b/tests/Symfony/Tests/Components/DependencyInjection/Loader/YamlFileLoaderTest.php index a088c56dbf..0ef6173654 100644 --- a/tests/Symfony/Tests/Components/DependencyInjection/Loader/YamlFileLoaderTest.php +++ b/tests/Symfony/Tests/Components/DependencyInjection/Loader/YamlFileLoaderTest.php @@ -107,6 +107,7 @@ class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase $loader = new ProjectLoader3(self::$fixturesPath.'/yaml'); $config = $loader->load('services10.yml'); + $config->commit(); $services = $config->getDefinitions(); $parameters = $config->getParameterBag()->all();