浏览代码

[DependencyInjection] force loading of class file when resolving interface injections

Lukas Kahwe Smith 14 年之前
父节点
当前提交
c886d88bf3

+ 4 - 0
src/Symfony/Component/DependencyInjection/Compiler/ResolveInterfaceInjectorsPass.php

@@ -26,6 +26,10 @@ class ResolveInterfaceInjectorsPass implements CompilerPassInterface
     public function process(ContainerBuilder $container)
     {
         foreach ($container->getDefinitions() as $definition) {
+            if (null !== $definition->getFile()) {
+                require_once $definition->getFile();
+            }
+
             foreach ($container->getInterfaceInjectors() as $injector) {
                 if (null !== $definition->getFactoryService()) {
                     continue;

+ 2 - 1
src/Symfony/Component/DependencyInjection/Compiler/ResolveParameterPlaceHoldersPass.php

@@ -28,6 +28,7 @@ class ResolveParameterPlaceHoldersPass implements CompilerPassInterface
 
         foreach ($container->getDefinitions() as $id => $definition) {
             $definition->setClass($this->resolveValue($definition->getClass()));
+            $definition->setFile($this->resolveValue($definition->getFile()));
             $definition->setArguments($this->resolveValue($definition->getArguments()));
 
             $calls = array();
@@ -87,4 +88,4 @@ class ResolveParameterPlaceHoldersPass implements CompilerPassInterface
             $value
         );
     }
-}
+}