Класс с различными методами для работы с файлами.
$tempDir = Files::makeTempFolder('myUploads/images');
.
При каждом использовании метода производится чистка от мусора — папки старше 10 дней удаляются.
Если при создании папки, папка с таким же именем уже существует, то папка будет удалена и создана заново. Забота о том, чтобы не было накладок имен папок лежит на том, кто использует данный метод. Если замещение папок недопустимо, то создавайте уникальные имена (например, с помощью префиксов).
Пример: $tempDir = Files::getTempFolderDir($folderName)
Метод создает папку, если ее нет.
Files::makeDirIfNotExists('templates/myimages', 0777);
Копирует файл и автоматически создает все папки файлового пути. Если в конечной папке такой же файл уже существует, имя нового файла будет изменено.
$options = [
'move'=>false, # Не копирование, а перемещение файла
'dstDir'=>null, # Абсолютный путь конечной папки нового файла
'dstFilename'=>null, # Имя нового файла
'dst-dir-mode'=>0755, # Режим доступа к конечной папке
'dst-file-mode'=>null, # Режим доступа к новому файлу
];
Для булевых опций можно применять короткую форму записи. Подробности см. в описании метода Arr::formatOptions(), который и применен внутри описываемого метода.
Если заданы опции 'dst-dir' и 'dst-file-name', второй параметр $dstFile можно не использовать, заметив его на пустую строку, так как $dstFile = $options['dst-dir'].'/'.$options['dst-file-name'];
Удаляет файл $fl.
Превращает имя файла в уникальное для помещения в указанный каталог. Если в каталоге уже существует файл с таким именем, то к имени без расширения добавляется дефис и инкрементное число.
Рекурсивный аналог функции glob(), то есть, находит пути и во вложенных папках.
$files = Files::glob(Blox::info('templates', 'dir').'/*.tpl');