karelwintersky / arris.entity.file
File Entity type for Arris µFramework
Requires
- php: ^8.2
- ext-fileinfo: *
- ext-posix: *
Requires (Dev)
- phpunit/phpunit: ^8
README
File Entity type for Arris µFramework. Simple OOP File wrapper.
Класс File
предоставляет объектно-ориентированный интерфейс для работы с файлами в PHP.
Он инкапсулирует основные операции с файлами, такие как чтение, запись, перемещение, копирование,
а также предоставляет информацию о файле (размер, MIME-тип, время изменения, etc).
Константы режимов открытия файла
FM_READ
('r'
) - только для чтенияFM_RW
('r+'
) - для чтения и записиFM_WRITE
('w+'
) - для записи (создает файл если не существует, обрезает существующий)FM_APPEND
('a+'
) - для добавления (создает файл если не существует)FM_CREATE
('c+'
) - для записи (создает файл если не существует, не обрезает существующий)
Основные методы
__construct(string $path, bool $force_open = false)
Конструктор класса.
Параметры:
$path
- путь к файлу$force_open
- открыть файл сразу после создания объекта
Исключения:
FileException
- другие ошибки работы с файлом
open(string $mode = self::FM_APPEND): self
Открывает файл, создавая файловый хэндлер.
Параметры:
$mode
- режим открытия (используйте константы класса)
Возвращает:
self
- текущий объект для цепочки вызовов
getContent(int $position = 0, ?int $length = null): string
Получить содержимое файла.
Параметры:
$position
- позиция начала чтения$length
- количество байт для чтения (null - до конца файла)
Возвращает:
string
- содержимое файла
Исключения:
FileException
- если не удалось прочитать файл
putContent(string $content, int $flag = 0): int
Записать содержимое в файл.
Параметры:
$content
- данные для записи$flag
- флаги (например, FILE_APPEND)
Возвращает:
int
- количество записанных байт
Исключения:
FileException
- если не удалось записать в файл
close(bool $just_in_case = true): self
Закрывает файловый хэндлер.
Параметры:
$just_in_case
- если true, не вызывает исключение если файл не открыт
Возвращает:
self
- текущий объект для цепочки вызовов
Исключения:
FileException
- если файл не открыт и$just_in_case = false
delete(bool $just_in_case = true): bool
Удалить файл.
Параметры:
$just_in_case
- если true, не вызывает исключение если файл не существует
Возвращает:
bool
- true в случае успеха
Исключения:
FileException
- если не удалось удалить файл и$just_in_case = false
truncate(int $size = 0): bool
Урезает файл до указанной длины.
Параметры:
$size
- новый размер файла
Возвращает:
bool
- true в случае успеха
Исключения:
FileException
- при ошибках
move(string $newPath): bool
Перемещает файл.
Параметры:
$newPath
- новый путь
Возвращает:
bool
- true в случае успеха
Исключения:
FileException
- при ошибках
copy(string $targetPath): self
Копирует файл.
Параметры:
$targetPath
- путь назначения
Возвращает:
self
- новый объект File для скопированного файла
Исключения:
FileException
- если не удалось скопировать
Методы получения информации о файле
getExtension(): string
Получить расширение файла (без точки).
getFilename(): string
Получить имя файла (без пути).
getFilenameWithoutExtension(): string
Получить имя файла без расширения.
getDirectory(): string
Получить путь к директории файла.
getSize(): int
Получить размер файла в байтах.
getLength(): int
Алиас для getSize()
.
getMimeType(): string
Получить MIME-тип файла.
getLastModifiedTime(): int
Получить время последнего изменения файла (timestamp).
getHash(string $algorithm = 'sha256'): string
Получить хэш файла.
getPath(): string
Получить путь к файлу.
getFileOwner(): array
Возвращает UID и GID владельца файла.
Методы проверки
isReadable(): bool
Проверить, является ли файл читаемым.
isWritable(): bool
Проверить, является ли файл записываемым.
isExecutable(): bool
Проверить, является ли файл исполняемым.
isLink(): bool
Проверить, является ли файл символической ссылкой.
isImage(): bool
Проверить, является ли файл изображением.
isVideo(): bool
Проверить, является ли файл видео.
exists(): bool
Проверить существование файла.
Статические методы
create(string $path, string $content = ''): self
Создать новый файл.
createTemp(string $prefix = '', string $content = ''): self
Создает новый временный файл.
match(string $pattern, string $test, int $flags): bool
Проверяет, совпадает ли строка с шаблоном (использует fnmatch).
Вспомогательные методы
writeFromPosition(string $content, int $position): int
Записывает данные в файл с указанной позиции.
readFromPosition(int $position = 0, ?int $length = null): string
Читает данные из файла с указанной позиции.