浏览代码

[DependencyInjection] optimized previous commit

Fabien Potencier 14 年之前
父节点
当前提交
5c73619d80
共有 1 个文件被更改,包括 7 次插入4 次删除
  1. 7 4
      src/Symfony/Component/DependencyInjection/Compiler/ResolveInterfaceInjectorsPass.php

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

@@ -26,15 +26,18 @@ class ResolveInterfaceInjectorsPass implements CompilerPassInterface
     public function process(ContainerBuilder $container)
     {
         foreach ($container->getDefinitions() as $definition) {
-            if (null !== $definition->getFile()) {
-                require_once $definition->getFile();
-            }
-
+            $loaded = false;
             foreach ($container->getInterfaceInjectors() as $injector) {
                 if (null !== $definition->getFactoryService()) {
                     continue;
                 }
 
+                if (false === $loaded && null !== $definition->getFile()) {
+                    $loaded = true;
+
+                    require_once $definition->getFile();
+                }
+
                 if ($injector->supports($definition->getClass())) {
                     $injector->processDefinition($definition);
                 }