Метод name
Метод name класса Finder
добавляет условие отбора файлов по имени.
Первым параметром передаётся шаблон имени
в виде строки. Символ * заменяет
любое количество символов, а ? -
один любой символ. Метод возвращает сам
объект Finder, что позволяет
выстраивать цепочку вызовов.
Синтаксис
$finder->name(string $pattern)
Пример
Давайте найдём все файлы с расширением
.php в директории src:
<?php
namespace AppService;
use SymfonyComponentFinderFinder;
class FileService
{
public function findPhpFiles(): array
{
$finder = new Finder();
$finder->files()->in('src')->name('*.php');
$res = [];
foreach ($finder as $file) {
$res[] = $file->getFilename();
}
return $res;
}
}
?>
Результат выполнения кода:
["FileService.php", "UserService.php", "ArticleService.php"]
Пример
Давайте найдём файлы, имя которых
начинается на Article:
<?php
namespace AppService;
use SymfonyComponentFinderFinder;
class ArticleService
{
public function findArticleFiles(): array
{
$finder = new Finder();
$finder->files()->in('src')->name('Article*');
$res = [];
foreach ($finder as $file) {
$res[] = $file->getRelativePathname();
}
return $res;
}
}
?>
Результат выполнения кода:
["Controller/ArticleController.php", "Entity/Article.php", "Repository/ArticleRepository.php"]
Пример
Давайте найдём файлы с именами из четырёх
символов и расширением .txt,
используя маску ?:
<?php
namespace AppService;
use SymfonyComponentFinderFinder;
class TextService
{
public function findShortTextFiles(): array
{
$finder = new Finder();
$finder->files()->in('var')->name('????.txt');
$res = [];
foreach ($finder as $file) {
$res[] = $file->getFilename();
}
return $res;
}
}
?>
Результат выполнения кода:
["test.txt", "logs.txt", "data.txt"]