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

Метод sortByName

Метод sortByName класса Finder сортирует результаты поиска по имени файла или директории в алфавитном порядке. Метод не принимает параметров и возвращает тот же объект Finder, что позволяет строить цепочки вызовов. По умолчанию сортировка выполняется в порядке возрастания (от 'a' к 'z').

Метод полезен, когда нужно получить стабильный, предсказуемый порядок обхода файлов, например при выводе списка статей, галерей или любых других наборов, зависящих от имён файлов.

Синтаксис

$finder->sortByName();

Пример

Давайте найдём все файлы в директории 'articles' и отсортируем их по имени:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Finder\Finder; class ArticleController extends AbstractController { public function index(): Response { $finder = new Finder(); $finder->files()->in('articles')->sortByName(); $res = []; foreach ($finder as $file) { $res[] = $file->getFilename(); } return new Response(implode(', ', $res)); } } ?>

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

"abcde.txt, article.txt, hello.txt, user.txt"

Пример

Давайте найдём директории и также отсортируем их по имени:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Finder\Finder; class ArticleController extends AbstractController { public function index(): Response { $finder = new Finder(); $finder->directories()->in('articles')->sortByName(); $res = []; foreach ($finder as $dir) { $res[] = $dir->getFilename(); } return new Response(implode(', ', $res)); } } ?>

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

"abcde, article, user"

Пример

Метод sortByName возвращает сам объект Finder, поэтому его удобно объединять с другими методами, например с name:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Finder\Finder; class ArticleController extends AbstractController { public function index(): Response { $finder = new Finder(); $finder ->files() ->in('articles') ->name('*.txt') ->sortByName(); $res = []; foreach ($finder as $file) { $res[] = $file->getFilename(); } return new Response(implode(', ', $res)); } } ?>

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

"abcde.txt, article.txt, hello.txt"

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

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