-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Oleg Grigoriev edited this page Apr 2, 2016
·
6 revisions
Абстракция над функциями доступа к файловой системе (PHP).
- Библиотека не требует внешних зависимостей
- Протестировано на PHP 5.4+, PHP 7, HHVM (Linux), PHP 5.5 (Windows)
- Установка:
composer require axy/fs-ifs
- Лицензия MIT
Библиотека повторяет встроенные функции для работы с файлами.
Чем это отличается от непосредственной работы с этими функциями и какой от этого толк:
- Прикладной код осуществляет доступ к файлам не через глобальные функции, а через объект с определённым интерфейсом. Этот объект легко заменить другой реализацией, подсунуть мок для тестов (который не будет работать с реальной ФС, а хранить всё в памяти), добавить определённые проверки.
- Вывод WARNING'ов заменён на исключения.
- Работа с открытым файлом вынесена в отдельный класс.
- Некоторые результаты структурированы в виде объектов (Stat, MetaData), вместо ассоциативных массивов. Что улучшает автокомплит.
- Сам список функций и их имена несколько более структурированный.
- Конкретные реализации могут реализовывать дополнительные возможности (ведение логов, работа с изолированным каталогом, как с целой ФС).
Этот пакет определяет только интерфейсы. Конкретные реализации описаны в других пакетах. Например, axy/fs-real - работа с реальной ФС.
- IFS - функции работы с ФС.
- IFile - открытый файл.
-
Stat - результат функций типа
stat()
. - MetaData - метаданные открытого файла.
- Исключения.