2.7 LoaderFile.php — Поиск и фильтрация файловlink

Назначениеlink

LoaderFile — это вспомогательный класс, который предоставляет метод для получения списка файлов из директории с возможностью фильтрации.
Он используется для поиска JS/CSS-файлов при сборке ассетов в Loader.php и AssetManager.

Основной методlink

getList($dir, $arSearchFileType = false, $arIgnoreFile = false, $sortFlag = true): array

Аргументыlink

Параметр Описание
$dir Абсолютный или относительный путь к директории
$arSearchFileType Список нужных расширений, например: ['js', 'css']
$arIgnoreFile Список подстрок, по которым нужно исключать файлы (например, ['.map'])
$sortFlag Сортировать результат или нет (по умолчанию true)

Поведениеlink

  1. Если путь не абсолютный — дополняется $_SERVER["DOCUMENT_ROOT"];
  2. Выполняется opendir($dir) и перебор всех файлов;
  3. Пропускаются . и ..;
  4. Применяется фильтрация по расширениям;
  5. Применяется фильтрация по подстрокам в имени файла;
  6. Возвращается массив вида:

Используется в:link

  • Loader::getMinFile() — для поиска .js;
  • Loader::getMinFileCss() — для поиска .css;
  • Других частях, где нужно получить список файлов определённого типа из папки компонента.
 "/abs/path/to/file1.js" => "file1.js",
 "/abs/path/to/file2.js" => "file2.js"

Пример вызоваlink

 $jsFiles = LoaderFile::getList('/simai/asset/simai.framework/component/modal/js/', ['js'], ['.map']);

Особенностиlink

  • Универсальный механизм обхода и фильтрации;
  • Позволяет игнорировать нежелательные файлы (например, .map, .bak, .DS_Store);
  • Автоматически дополняет путь до корня проекта при необходимости.