РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
707 of 1361 menu

Метод 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,
    который фильтрует файлы по размеру
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить