From 14dd1a91a9e52ffdf782ee25cce59b41fcf9d0c8 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 23 Mar 2012 13:42:06 +0100 Subject: [PATCH] [Routing] made AnnotationDirectoryLoader deterministic (closes #3683) --- .../Component/Routing/Loader/AnnotationDirectoryLoader.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Routing/Loader/AnnotationDirectoryLoader.php b/src/Symfony/Component/Routing/Loader/AnnotationDirectoryLoader.php index 8097cd67f9..0fca304942 100644 --- a/src/Symfony/Component/Routing/Loader/AnnotationDirectoryLoader.php +++ b/src/Symfony/Component/Routing/Loader/AnnotationDirectoryLoader.php @@ -38,7 +38,12 @@ class AnnotationDirectoryLoader extends AnnotationFileLoader $collection = new RouteCollection(); $collection->addResource(new DirectoryResource($dir, '/\.php$/')); - foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir), \RecursiveIteratorIterator::LEAVES_ONLY) as $file) { + $files = iterator_to_array(new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir), \RecursiveIteratorIterator::LEAVES_ONLY)); + usort($files, function (\SplFileInfo $a, \SplFileInfo $b) { + return (string) $a > (string) $b ? 1 : -1; + }); + + foreach ($files as $file) { if (!$file->isFile() || '.php' !== substr($file->getFilename(), -4)) { continue; }