Содержание

Пакет FS

Пакет 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.

Классы-исключения пакета FS

КлассНазначение
lmbFsExceptionОбщий класс-исключение пакета
lmbFsNotFoundExceptionИсключение о том, что по указанному пути файл не найден. Выбрасывается, например, в lmbFileLocator, если он не смог найти файл по алису

Класс lmbFsTools

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();