diff --git a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php index e179172df43c..68e5430fc394 100644 --- a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php +++ b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php @@ -699,17 +699,8 @@ private function createService(Definition $definition, $id) } $properties = $this->resolveServices($this->getParameterBag()->resolveValue($definition->getProperties())); - $outsideClass = new \ReflectionClass($service); foreach ($properties as $name => $value) { - $class = $outsideClass; - do { - if ($class->hasProperty($name)) { - $property = $class->getProperty($name); - $property->setAccessible(true); - $property->setValue($service, $value); - continue 2; - } - } while (false !== $class = $class->getParentClass()); + $service->$name = $value; } if ($callable = $definition->getConfigurator()) { diff --git a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php index 19711e7961ed..764e6b811420 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php @@ -374,9 +374,7 @@ private function addServiceProperties($id, $definition, $variableName = 'instanc { $code = ''; foreach ($definition->getProperties() as $name => $value) { - $code .= sprintf(" \$%s = new \ReflectionProperty(\$%s, %s);\n", $refName = $this->getNextVariableName(), $variableName, var_export($name, true)); - $code .= sprintf(" \$%s->setAccessible(true);\n", $refName); - $code .= sprintf(" \$%s->setValue(\$%s, %s);\n", $refName, $variableName, $this->dumpValue($value)); + $code .= sprintf(" \$%s->%s = %s;\n", $variableName, $name, $this->dumpValue($value)); } return $code; diff --git a/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/includes/foo.php b/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/includes/foo.php index f28fe45892f8..2c53122756da 100644 --- a/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/includes/foo.php +++ b/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/includes/foo.php @@ -2,7 +2,7 @@ class FooClass { - private $foo, $moo; + public $foo, $moo; public $bar = null, $initialized = false, $configured = false, $called = false, $arguments = array(); diff --git a/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/php/services9.php b/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/php/services9.php index d86f4a7ec5f0..dc62d54ffdcb 100644 --- a/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/php/services9.php +++ b/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/php/services9.php @@ -66,12 +66,8 @@ protected function getFooService() $instance->setBar($this->get('bar')); $instance->initialize(); - $b = new \ReflectionProperty($instance, 'foo'); - $b->setAccessible(true); - $b->setValue($instance, 'bar'); - $c = new \ReflectionProperty($instance, 'moo'); - $c->setAccessible(true); - $c->setValue($instance, $a); + $instance->foo = 'bar'; + $instance->moo = $a; sc_configure($instance); return $instance;