Метод sortByModifiedTime класса Finder
Метод sortByModifiedTime класса Finder
сортирует найденные файлы и директории по времени
их последнего изменения. По умолчанию сортировка
идёт по возрастанию: сначала идут самые старые
файлы, затем более новые. Вторым параметром можно
передать направление сортировки. Метод возвращает
тот же объект Finder, поэтому его удобно
использовать в цепочке вызовов.
Синтаксис
$finder->sortByModifiedTime(string $direction = 'asc')
Параметр direction принимает значения
'asc' для сортировки по возрастанию
и 'desc' для сортировки по убыванию.
Пример
Давайте найдём все файлы в папке src
и отсортируем их по времени изменения:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Finder\Finder;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(): Response
{
$finder = new Finder();
$finder->files()->in('src')->sortByModifiedTime();
$res = [];
foreach ($finder as $file) {
$res[] = $file->getFilename();
}
return new Response(implode(', ', $res));
}
}
?>
Результат выполнения кода:
ArticleController.php, Kernel.php, index.php
Пример
Давайте отсортируем файлы по убыванию времени
изменения, передав параметр 'desc':
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Finder\Finder;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(): Response
{
$finder = new Finder();
$finder->files()->in('src')->sortByModifiedTime('desc');
$res = [];
foreach ($finder as $file) {
$res[] = $file->getFilename();
}
return new Response(implode(', ', $res));
}
}
?>
Результат выполнения кода:
index.php, Kernel.php, ArticleController.php
Пример
Метод возвращает объект Finder, поэтому
его можно объединять в цепочку с другими методами.
Давайте отберём только файлы с расширением .php
и отсортируем их по времени изменения:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Finder\Finder;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(): Response
{
$finder = new Finder();
$finder->files()
->in('src')
->name('*.php')
->sortByModifiedTime('desc');
$res = [];
foreach ($finder as $file) {
$res[] = $file->getFilename() . ' (' . date('Y-m-d H:i', $file->getMTime()) . ')';
}
return new Response(implode(', ', $res));
}
}
?>
Результат выполнения кода:
ArticleController.php (2024-01-15 10:30), Kernel.php (2024-01-10 09:15), index.php (2024-01-05 14:20)
Смотрите также
-
класс
Finder,
который ищет файлы и директории -
метод
sortByName,
который сортирует файлы по имени -
метод
date,
который фильтрует файлы по дате изменения -
метод
size,
который фильтрует файлы по размеру