Метод files
Метод files класса Finder фильтрует результаты поиска,
оставляя только файлы. Директории при этом исключаются из выборки.
Метод не принимает параметров и возвращает объект Finder,
что позволяет использовать его в цепочке вызовов.
Синтаксис
public function files(): Finder
Пример
Давайте найдём все файлы в директории 'src':
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFinderFinder;
class ArticleController extends AbstractController
{
public function index(): Response
{
$finder = new Finder();
$finder->files()->in('src');
$res = [];
foreach ($finder as $file) {
$res[] = $file->getFilename();
}
return new Response(implode(', ', $res));
}
}
?>
Результат выполнения кода:
ArticleController.php
Пример
Давайте сравним вывод с методом files и без него:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFinderFinder;
class ArticleController extends AbstractController
{
public function index(): Response
{
$finderAll = new Finder();
$finderAll->in('src');
$all = [];
foreach ($finderAll as $item) {
$all[] = $item->getFilename();
}
$finderFiles = new Finder();
$finderFiles->files()->in('src');
$files = [];
foreach ($finderFiles as $file) {
$files[] = $file->getFilename();
}
return new Response(
'All: ' . implode(', ', $all) . ' | ' .
'Files: ' . implode(', ', $files)
);
}
}
?>
Результат выполнения кода:
All: Controller, ArticleController.php | Files: ArticleController.php
Пример
Давайте найдём все файлы с расширением '.php' в директории 'src':
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFinderFinder;
class ArticleController extends AbstractController
{
public function index(): Response
{
$finder = new Finder();
$finder->files()->name('*.php')->in('src');
$res = [];
foreach ($finder as $file) {
$res[] = $file->getFilename();
}
return new Response(implode(', ', $res));
}
}
?>
Результат выполнения кода:
ArticleController.php
Смотрите также
-
класс
Finder,
который выполняет поиск файлов и директорий -
метод
directories,
который оставляет только директории -
метод
name,
который фильтрует файлы по имени -
метод
in,
который задаёт директорию для поиска