Метод in класса Finder
Метод in класса Finder добавляет директорию,
в которой будет производиться поиск файлов и папок.
Первым параметром передаётся путь к директории.
Метод можно вызывать несколько раз, чтобы искать
в нескольких директориях одновременно.
Синтаксис
$finder->in(string $dirs)
В качестве параметра $dirs можно передать
как строку с путём, так и массив путей.
Пример
Давайте найдём все файлы в директории 'src':
<?php
namespace AppService;
use SymfonyComponentFinderFinder;
class FileService
{
public function findFiles(): array
{
$finder = new Finder();
$finder->files()->in('src');
$res = [];
foreach ($finder as $file) {
$res[] = $file->getRelativePathname();
}
return $res;
}
}
?>
Результат выполнения кода:
["Controller/ArticleController.php", "Service/FileService.php"]
Пример
Давайте найдём все директории в папке 'src':
<?php
namespace AppService;
use SymfonyComponentFinderFinder;
class FileService
{
public function findDirectories(): array
{
$finder = new Finder();
$finder->directories()->in('src');
$res = [];
foreach ($finder as $dir) {
$res[] = $dir->getRelativePathname();
}
return $res;
}
}
?>
Результат выполнения кода:
["Controller", "Service"]
Пример
Давайте найдём файлы в нескольких директориях одновременно:
<?php
namespace AppService;
use SymfonyComponentFinderFinder;
class FileService
{
public function findInMultipleDirs(): array
{
$finder = new Finder();
$finder->files()->in(['src', 'templates']);
$res = [];
foreach ($finder as $file) {
$res[] = $file->getRelativePathname();
}
return $res;
}
}
?>
Результат выполнения кода:
["Controller/ArticleController.php", "Service/FileService.php", "article/index.html.twig"]
Пример
Давайте найдём все файлы с расширением '.php'
в директории 'src':
<?php
namespace AppService;
use SymfonyComponentFinderFinder;
class FileService
{
public function findPhpFiles(): array
{
$finder = new Finder();
$finder->files()->name('*.php')->in('src');
$res = [];
foreach ($finder as $file) {
$res[] = $file->getRelativePathname();
}
return $res;
}
}
?>
Результат выполнения кода:
["Controller/ArticleController.php", "Service/FileService.php"]
Смотрите также
-
класс
Finder,
который предоставляет удобный поиск файлов и папок -
метод
files,
который ограничивает поиск только файлами -
метод
directories,
который ограничивает поиск только директориями -
метод
name,
который фильтрует результаты по имени файла