РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
700 of 1361 menu

Метод depth

Метод depth класса Finder задаёт максимальную глубину вложенности директорий, до которой будет выполняться поиск файлов и папок. Первым параметром передаётся целое число - уровень вложенности. Значение 0 ограничивает поиск только текущей директорией, 1 - текущей и её непосредственными поддиректориями и так далее. Метод возвращает объект Finder, что позволяет выстраивать цепочку вызовов.

Синтаксис

$finder->depth(level);

Пример

Давайте найдём все файлы в директории 'src', ограничившись глубиной 0:

<?php namespace AppService; use SymfonyComponentFinderFinder; class FinderService { public function findFiles(): array { $finder = new Finder(); $finder->files()->in('src')->depth(0); $res = []; foreach ($finder as $file) { $res[] = $file->getFilename(); } return $res; } } ?>

Результат выполнения кода:

["FinderService.php"]

Пример

Давайте увеличим глубину до 1, чтобы захватить файлы из вложенных директорий:

<?php namespace AppService; use SymfonyComponentFinderFinder; class FinderService { public function findFiles(): array { $finder = new Finder(); $finder->files()->in('src')->depth(1); $res = []; foreach ($finder as $file) { $res[] = $file->getRelativePathname(); } return $res; } } ?>

Результат выполнения кода:

["FinderService.php", "Controller/ArticleController.php", "Entity/Article.php"]

Пример

Давайте найдём только директории первого уровня вложенности:

<?php namespace AppService; use SymfonyComponentFinderFinder; class FinderService { public function findDirectories(): array { $finder = new Finder(); $finder->directories()->in('src')->depth(0); $res = []; foreach ($finder as $dir) { $res[] = $dir->getFilename(); } return $res; } } ?>

Результат выполнения кода:

["Controller", "Entity", "Service"]

Пример

Давайте используем метод depth в связке с методом name для поиска конкретных файлов:

<?php namespace AppService; use SymfonyComponentFinderFinder; class FinderService { public function findPhpFiles(): array { $finder = new Finder(); $finder->files()->name('*.php')->in('src')->depth(1); $res = []; foreach ($finder as $file) { $res[] = $file->getRelativePathname(); } return $res; } } ?>

Результат выполнения кода:

["FinderService.php", "Controller/ArticleController.php", "Entity/Article.php"]

Смотрите также

  • класс Finder,
    который выполняет поиск файлов и директорий
  • метод files,
    который ограничивает поиск только файлами
  • метод directories,
    который ограничивает поиск только директориями
  • метод in,
    который задаёт директорию для поиска
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить