Метод date
Метод date класса Finder фильтрует файлы по дате
последнего изменения. Первым параметром передаётся оператор
сравнения (например, '<', '>', '<=',
'>=', '==', '!='), вторым - дата в формате,
понятном конструктору DateTime (строка, метка времени или объект).
Метод возвращает сам объект Finder, что позволяет строить
цепочки вызовов.
Синтаксис
public function date(string $operator, string|int|\DateTimeInterface $date): static
Пример
Давайте найдём все файлы, изменённые после '2024-01-01':
<?php
namespace App\Service;
use Symfony\Component\Finder\Finder;
class FileService
{
public function findRecent(): iterable
{
$finder = new Finder();
$finder->files()->in('var/log')->date('>', '2024-01-01');
return $finder;
}
}
?>
Результат выполнения кода:
["var/log/dev.log", "var/log/prod.log"]
Пример
Давайте найдём файлы, изменённые до '2024-06-01':
<?php
namespace App\Service;
use Symfony\Component\Finder\Finder;
class FileService
{
public function findOld(): iterable
{
$finder = new Finder();
$finder->files()->in('var/log')->date('<', '2024-06-01');
return $finder;
}
}
?>
Результат выполнения кода:
["var/log/old.log"]
Пример
Давайте найдём файлы, изменённые ровно '2024-03-15':
<?php
namespace App\Service;
use Symfony\Component\Finder\Finder;
class FileService
{
public function findByDate(): iterable
{
$finder = new Finder();
$finder->files()->in('var/log')->date('==', '2024-03-15');
return $finder;
}
}
?>
Результат выполнения кода:
["var/log/dev.log"]
Пример
Давайте передадим объект DateTime вместо строки:
<?php
namespace App\Service;
use DateTime;
use Symfony\Component\Finder\Finder;
class FileService
{
public function findByDateTime(): iterable
{
$date = new DateTime('2024-01-01');
$finder = new Finder();
$finder->files()->in('var/log')->date('>=', $date);
return $finder;
}
}
?>
Результат выполнения кода:
["var/log/dev.log", "var/log/prod.log", "var/log/test.log"]
Смотрите также
-
класс
Finder,
который предоставляет удобный интерфейс для поиска файлов -
метод
files,
который ограничивает выборку только файлами -
метод
in,
который задаёт директории для поиска -
метод
sortByModifiedTime,
который сортирует файлы по времени изменения