Skip to content

Файловая система

Для работы с файловой системы предусмотрен ряд классов, позволяющих представить директории и файлы в виде классов. Классы универсальны для работы как в UNIX системах, так и в Windows.

Директория

Класс \Realweb\Api\Model\FileSystem\Dir в качестве конструктора принимает полный путь от корня файловой системы

Имеет ряд встроенных методов

  • public function getName(): string - возвращает полный путь до директории, как он был задан в конструкторе
  • public function getOriginalName(): string - возвращает название директории
  • public function getPublicPath(): string - возвращает путь до директории относительно DOCUMENT_ROOT
  • public function getPath(): string - возвращает полный путь до директории. Если директория не существует - пустая строка
  • public function isExist(): bool - проверка на существование
  • public function create(int $iRights = 0755): bool - создание директории, если она не существует. Создание директорий происходит рекурсивно. В качестве параметра принимает права на создаваемые директории
  • public function getParent(): static - возвращает объект директории-родителя
  • public function getChildren(?string $strMode = null): Collection - получение коллекции элементов вытури директории. Может содержать как директории, так и файлы
  • public function delete(): bool - удаление директории вместе со всеми своими детьми

Директория относительно корня сайта

Публичная директория \Realweb\Api\Model\FileSystem\Dir\PublicDir наследуется от \Realweb\Api\Model\FileSystem\Dir, но в качестве параметра конструктора принимает путь до директории относительно DOCUMENT_ROOT

Файл

Класс \Realweb\Api\Model\FileSystem\File в качестве конструктора принимает полный путь от корня файловой системы

Имеет ряд встроенных методов

  • public function getName(): string - возвращает полный путь до файла, как он был задан в конструкторе
  • public function getPublicPath(): string - возвращает путь до файла относительно DOCUMENT_ROOT
  • public function getPath(): string - возвращает полный путь до файла. Если файл не существует - пустая строка
  • public function isExist(): bool - проверка на существование
  • public function getParent(): Dir - возвращает родительскую директорию
  • public function getExtension(): ?string - возвращает расширение файла
  • public function getOriginalName(): string - возвращает название файла basename
  • public function getFileName(): ?string - возвращает название файла filename
  • public function getMimeType(): string - возвращает тип файла
  • public function getSize(): int - возвращает размер файла
  • public function getImageSize(): ?array - возвращает размер картинки
  • public function getWidth(): int - возвращает ширину картинки
  • public function getHeight(): int - возвращает высоту картинки
  • public function getBody(): string - возвращает содержимое файла
  • public function getStream(): ?string - возвращает содержимое открытого файла
  • public function getHash(): string - возвращает уникальный идентификатор файла
  • public function getHashContent(): string - возвращает md5_file файла
  • public function getTime(): ?int - возвращает время последней модификации
  • public function setContent(string $strContent): static - устанавливает содержимое файла перед сохранением
  • public function getContent(): string - возвращает содержимое файла, установленного перед сохранением
  • public function isImage(): bool - проверка на картинку
  • public function save(): static - сохранение файла
  • public function delete(): void - удаление файла

Файл относительно корня сайта

Публичный файл \Realweb\Api\Model\FileSystem\File\PublicFile наследуется от \Realweb\Api\Model\FileSystem\File, но в качестве параметра конструктора принимает путь до файла относительно DOCUMENT_ROOT

Имеет встроенный метод

  • public function getResizeFile(?int $iHeight = null, $iWidth = null, int $iResizeType = BX_RESIZE_IMAGE_PROPORTIONAL): static - получение ресайза картинки

Внешний файл

Внешний файл (на удаленном сервере) \Realweb\Api\Model\FileSystem\File\ExternalFile, наследуется от \Realweb\Api\Model\FileSystem\File, но в качестве параметра конструктора принимает абсолютную ссылку

Имеет встроенные методы

  • public function getArFile(): array - получение массива для сохранения в bitrix
  • public function saveFile(): int - сохранение файла в bitrix

Bitrix

Для файлов, зарегистрированными в БД Bitrix (картинки, медиа-файлы) предусмотрен набор классов

Database

Класс \Realweb\Api\Model\FileSystem\Bitrix\Database расширяет базовый класс \Realweb\Api\Model\Data\Database. Также запрашивает и относительный путь до файла

В качестве параметров можно предавать следующие:

  • id - integer, фильтр по ID
  • ids - array, фильтр по массиву ID

Entity

Основная сущность файла (запись в БД) класс \Realweb\Api\Model\FileSystem\Bitrix\Entity расширяет базовый класс \Realweb\Api\Model\Data\Entity

Имеет встроенные методы:

  • int getId() - возвращает ID
  • string getFileSrc() - возвращает путь до файла относительно корня сайта
  • string getDescription() - возвращает описание файла
  • string getOriginalName() - возвращает оригинальное название файла
  • string getFileName() - возвращает имя файла
  • string getFileSize() - возвращает размер файла
  • public function getFile(): \Realweb\Api\Model\FileSystem\File\PublicFile - получение объекта файла