From d513eae29ec9349348255cdb8d15540766d8329b Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 6 Jul 2016 10:59:52 +0200 Subject: [PATCH] [ClassLoader] Fix declared classes being computed when not needed --- .../ClassLoader/ClassCollectionLoader.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Component/ClassLoader/ClassCollectionLoader.php b/src/Symfony/Component/ClassLoader/ClassCollectionLoader.php index 8046579685..b695b9272f 100644 --- a/src/Symfony/Component/ClassLoader/ClassCollectionLoader.php +++ b/src/Symfony/Component/ClassLoader/ClassCollectionLoader.php @@ -43,12 +43,12 @@ class ClassCollectionLoader self::$loaded[$name] = true; - $declared = array_merge(get_declared_classes(), get_declared_interfaces()); - if (function_exists('get_declared_traits')) { - $declared = array_merge($declared, get_declared_traits()); - } - if ($adaptive) { + $declared = array_merge(get_declared_classes(), get_declared_interfaces()); + if (function_exists('get_declared_traits')) { + $declared = array_merge($declared, get_declared_traits()); + } + // don't include already declared classes $classes = array_diff($classes, $declared); @@ -87,11 +87,17 @@ class ClassCollectionLoader } } - if (!$reload && is_file($cache)) { + if (!$reload && file_exists($cache)) { require_once $cache; return; } + if (!$adaptive) { + $declared = array_merge(get_declared_classes(), get_declared_interfaces()); + if (function_exists('get_declared_traits')) { + $declared = array_merge($declared, get_declared_traits()); + } + } $files = array(); $content = '';