Changeset 22115
- Timestamp:
- 09/18/09 08:45:48 (4 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
components/dependency_injection/trunk/lib/sfServiceContainerLoader.php
r20409 r22115 63 63 * constructor. 64 64 * 65 * You can also pass multiple resource paths to the constructor. 66 * 65 67 * @param mixed $resource The resource path 66 68 */ … … 72 74 } 73 75 74 list($definitions, $parameters) = $this->doLoad($resource); 76 $resources = func_get_args(); 77 foreach ($resources as $resource) 78 { 79 list($definitions, $parameters) = $this->doLoad($resource); 75 80 76 foreach ($definitions as $id => $definition) 77 { 78 if (is_string($definition)) 81 foreach ($definitions as $id => $definition) 79 82 { 80 $this->container->setAlias($id, $definition); 83 if (is_string($definition)) 84 { 85 $this->container->setAlias($id, $definition); 86 } 87 else 88 { 89 $this->container->setServiceDefinition($id, $definition); 90 } 81 91 } 82 else 92 93 $currentParameters = $this->container->getParameters(); 94 foreach ($parameters as $key => $value) 83 95 { 84 $this->container->set ServiceDefinition($id, $definition);96 $this->container->setParameter($key, $this->container->resolveValue($value)); 85 97 } 98 $this->container->addParameters($currentParameters); 86 99 } 87 88 $currentParameters = $this->container->getParameters();89 foreach ($parameters as $key => $value)90 {91 $this->container->setParameter($key, $this->container->resolveValue($value));92 }93 $this->container->addParameters($currentParameters);94 100 } 95 101 components/dependency_injection/trunk/test/unit/sfServiceContainerLoaderTest.php
r20409 r22115 13 13 sfServiceContainerAutoloader::register(); 14 14 15 $t = new lime_test(1 0);15 $t = new lime_test(11); 16 16 17 17 class ProjectLoader extends sfServiceContainerLoader … … 76 76 $loader->load(array(array('foo' => new sfServiceDefinition('BazClass')), array())); 77 77 $t->is($container->getServiceDefinition('foo')->getClass(), 'BazClass', '->load() overrides already defined services'); 78 79 $loader->setServiceContainer($container = new sfServiceContainerBuilder()); 80 $loader->load(array(array(), array('foo' => 'bar')), array(array(), array('bar' => 'foo'))); 81 $t->is($container->getParameters(), array('foo' => 'bar', 'bar' => 'foo'), '->load() accepts several resources as argument');