New in Symfony 6.2: Finder Improvements
The Finder component provides utilities to find files/directories via multiple
filter and sort methods. In Symfony 6.2 we’re adding new sorting methods to it.
Contributed by
Robert Fischer
in #46591.
The Finder component already includes methods to filter files/directories by file
extension and or/size, but you couldn’t sort results based on them. In Symfony 6.2
we’ve added new methods to sort by file extension and/or size:
use SymfonyComponentFinderFinder;
$finder = (new Finder())
->in(__DIR__)
// …
->sortByExtension()
->sortBySize();
Contributed by
Hubert Moreau
in #46126.
In Symfony 6.2 we’ve also added a new method to sort files/directories by their
names in a case-insensitive way. Internally, it uses the strcasecmp() PHP
function to perform the sorting:
$finder = (new Finder())
->in(__DIR__)
// …
// this sorts results case-insensitive and using the „machine sorting“ algorithm
// e.g. „file1.txt“, „File10.txt“, „File2.txt“, „file3.txt“
->sortByCaseInsensitiveName()
// this sorts results case-insensitive and using the „natural sorting“ algorithm
// e.g. „file1.txt“, „File2.txt“, „file3.txt“, „File10.txt“
->sortByCaseInsensitiveName(true);
Because of their own nature, all these new methods need to retrieve all results
before sorting them, so they can impact performance.
Symfony Blog