По умолчанию Компонент Symfony Finder сортирует файлы по ASC
порядок.
//sorting by ASC order
$finder->files()->in($this->getDumpPath())->sortByModifiedTime();
Как я могу сортировать файлы по DESC
?
Вы можете использовать метод сортировки и дать свою собственную анонимную функцию сортировки (см. Symfony\Component\Finder\Iterator\SortableIterator
)
$finder->sort(function ($a, $b) { return strcmp($b->getRealpath(), $a->getRealpath()); });
Это все о сортировке советов.
С такой работой всегда одно и то же.
Пожалуйста, посмотрите на функция usort.
Чтобы быть более точным, я просто взял фрагмент кода из Symfony\Component\Finder\Iterator\SortableIterator
и я вернул условие возврата.
В Symfony \ Component \ Finder \ Iterator \ SortableIterator вы можете видеть случай ASC, поэтому случай DESC:
$finder->files()->in($this->getDumpPath())->sort(
function ($a, $b) {
return ($b->getMTime() - $a->getMTime());
}
);
reverseSorting метод, который был введен в Symfony 4.2, теперь можно использовать.
$finder = new Finder();
$finder->sortByModifiedTime();
$finder->reverseSorting();
$finder->files()->in( $directoryPath );
foreach ($finder as $file) {
// log each modification time for example
// $this->logger->debug ( \date('d/m/Y H:i', $file->getMTime()) );
}