diff --git a/packages/guides/src/Files.php b/packages/guides/src/Files.php index bfd09601c..00f020c3b 100644 --- a/packages/guides/src/Files.php +++ b/packages/guides/src/Files.php @@ -22,6 +22,9 @@ use function in_array; use function sort; +use const SORT_FLAG_CASE; +use const SORT_NATURAL; + /** @implements IteratorAggregate */ final class Files implements IteratorAggregate, Countable { @@ -35,7 +38,7 @@ public function add(string $filename): void } $this->files[] = $filename; - sort($this->files); + sort($this->files, SORT_NATURAL | SORT_FLAG_CASE); } /** @return Iterator */ diff --git a/packages/guides/tests/unit/FilesTest.php b/packages/guides/tests/unit/FilesTest.php new file mode 100644 index 000000000..c1c34f86f --- /dev/null +++ b/packages/guides/tests/unit/FilesTest.php @@ -0,0 +1,40 @@ +add('page'); + $files->add('Subpage'); + $files->add('index'); + + $result = iterator_to_array($files->getIterator()); + + self::assertSame( + [ + 'index', + 'page', + 'Subpage', + ], + $result, + ); + } +}