Метод size
Метод size класса Finder фильтрует
файлы по их размеру. Первым параметром передаётся
оператор сравнения в виде строки: '<', '<=',
'>', '>=', '==', '!='.
Вторым параметром передаётся размер в байтах.
Метод возвращает объект Finder, что позволяет
выстраивать цепочку вызовов.
Синтаксис
public function size(string $operator, int|string $size): static
Пример
Давайте найдём все файлы размером больше 100 байт
в директории 'src':
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Finder\Finder;
class FinderController extends AbstractController
{
public function index(): Response
{
$finder = new Finder();
$finder->files()->in('src')->size('>', 100);
$res = [];
foreach ($finder as $file) {
$res[] = $file->getFilename();
}
return new Response(implode(', ', $res));
}
}
?>
Результат выполнения кода:
ArticleController.php, FinderController.php
Пример
Давайте найдём файлы, размер которых меньше или равен 50 байтам:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Finder\Finder;
class FinderController extends AbstractController
{
public function index(): Response
{
$finder = new Finder();
$finder->files()->in('src')->size('<=', 50);
$res = [];
foreach ($finder as $file) {
$res[] = $file->getFilename();
}
return new Response(implode(', ', $res));
}
}
?>
Результат выполнения кода:
"hello.php"
Пример
Давайте найдём все файлы, размер которых точно равен 1024 байтам:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Finder\Finder;
class FinderController extends AbstractController
{
public function index(): Response
{
$finder = new Finder();
$finder->files()->in('src')->size('==', 1024);
$res = [];
foreach ($finder as $file) {
$res[] = $file->getFilename();
}
return new Response(implode(', ', $res));
}
}
?>
Результат выполнения кода:
"article.php"