New in Symfony 6.2: Finder Improvements
Symfony 6.2 is backed by:
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.
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:
1 2 3 4 5 6 7
use Symfony\Component\Finder\Finder; $finder = (new Finder()) ->in(__DIR__) // ... ->sortByExtension() ->sortBySize();
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
function to perform the sorting:
1 2 3 4 5 6 7 8 9 10 11 12
$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(useNaturalSort: true) ;
Because of their own nature, all these new methods need to retrieve all results before sorting them, so they can impact performance.
Help the Symfony project!
As with any Open-Source project, contributing code or documentation is the most common way to help, but we also have a wide range of sponsoring opportunities.
Comments are closed.
To ensure that comments stay relevant, they are closed for old posts.
A quick suggestion, since Symfony 6 is using PHP 8 it would be nice to use named arguments in the examples:
I think that better illustrates what the "true" toggles without the more verbose comment.