[ClassLoader] added missing support for PHP 5.4 traits

This commit is contained in:
Fabien Potencier 2012-07-03 17:40:35 +02:00
parent 85977649a4
commit 6f4d28181a

View File

@ -42,9 +42,14 @@ 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) {
// don't include already declared classes
$classes = array_diff($classes, get_declared_classes(), get_declared_interfaces());
$classes = array_diff($classes, $declared);
// the cache is different depending on which classes are already declared
$name = $name.'-'.substr(md5(implode('|', $classes)), 0, 5);