Пакет FS - содержит различные утилитарные классы для работы с файловой системой, а также для нахождения файлов по алиасам (укороченным названиям).
Пакет FS появился в результате слияния пакетов UTIL (частично) и FILE_SCHEMA.
Пакет FS содержит следующие группы классов:
Класс | Назначение |
---|---|
lmbFs | Применяется для работы с файловой системой: создание и удаление каталогов, вывод содержимого каталогов, рекурсивный обход каталогов и т.д. |
lmbFsRecursiveIterator | Применяется для рекурсивного обхода файловой системы с использованием интерфейса итератора. |
Эти классы используется для поиска файлов по укороченным названиям (alias-ам). Например, в где-то в коде мы указываем для имени шаблона просто newsline/edit.html, а при помощи данной системы мы найдем этот файл в одном из пакетов, установленных для приложения в папке var/dev/my_project/template/newsline/edit.html
Зачем это все нужно? Limb нацелен на высокое повторное использование не только классов, но и всех файлов, так или иначе относящихся к приложениям. Например, зачем копировать базовые шаблоны центра администрирования, если можно их держать в одном месте?
Кроме того, схема расположения файлов может сильно меняться от проекта к проекту, поэтому мы постарались реализовать максимально гибкий механизм поиска файлов по алиасам, который бы позволял добиваться повторного использования большинства файлов.
Класс | Назначение |
---|---|
lmbFileLocator | Используется для поиска файлов по локациям, список которых определяются объектом, реализующим интерфейс lmbFileLocations. Этот объект передается в конструктор lmbFileLocator. |
lmbFileLocatorDecorator | Базовый декоратор на lmbFileLocator. |
lmbCachingFileLocator | Кеширующий lmbFileLocator. Позволяет значительно сократить время на поиск файлов. Наследуется от lmbFileLocatorDecorator. |
интерфейс lmbFileLocations | Интерфейс, состоящий из одного метода getLocations($params = array());. Возвращает массив путей, где локаторы должны искать файлы. |
lmbFileLocationsList | Используется для составления списка локаций, где следует искать файл файловому локатору. Позволяет объединять явные пути, а также несколько объектов, реализующий lmbFileLocations в одно целое. |
lmbIncludePathFileLocations | Возвращает список локаций на основе набора списка суффиксов путей и элементов include_path |
Более подробное описание этой подсистемы см. в описании класса lmbFileLocator.
Класс | Назначение |
---|---|
lmbFsException | Общий класс-исключение пакета |
lmbFsNotFoundException | Исключение о том, что по указанному пути файл не найден. Выбрасывается, например, в lmbFileLocator, если он не смог найти файл по алису |
lmbFsTools - автоматически добавляется в lmbToolkit при подключении файла limb/fs/common.inc.php.
lmbFsTools содержит 2 метода:
Пример:
$controller_class_name = 'MyController'; $file = $this->toolkit->findFileByAlias("$constructor_class_name.class.php", LIMB_CONTROLLERS_INCLUDE_PATH, 'controller'); lmb_require($file); $controller = new $controller_class_name();
Обсуждение