소스 검색

[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);
                 }