Инструменты пользователя

Инструменты сайта


limb3:ru:packages:fs

Пакет FS

Пакет FS - содержит различные утилитарные классы для работы с файловой системой, а также для нахождения файлов по алиасам (укороченным названиям).

:!: Пакет FS появился в результате слияния пакетов UTIL (частично) и FILE_SCHEMA.

Пакет FS содержит следующие группы классов:

  • Классы-исключения пакета FS
  • Классы для работы с файловой системой
  • Классы для поиска файлов по алиасам
  • Класс lmbFsTools - инструментарий пакета

Классы для работы с файловой системой

КлассНазначение
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 метода:

  • getFileByAlias($alias, $paths, $locator_name) - позволяет получить полный путь до файла по его алиасу $alias. В качестве параметров передается $paths - строка из путей, где необходимо выполнить поиск файла, разделенных запятой, и название локатора (как бы идентификатор локатора).
  • getFileLocator($paths, $locator_name) - создает стандартный локатор файлов или возвращает ранее созданный. Под стандартный имеется в виду локатор (lmbFileLocator) или кеширующий локатор (lmbCachingFileLocator, если определена константа LIMB_VAR_DIR), которому в качестве локаций передан объект класса lmbIncludePathFileLocations (см. выше) с $paths элементами. Метод getFileLocator используется внутри getFileByAlias

Пример:

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

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
   __ __   ____  _      __ ______   ____
  / // /  /  _/ | | /| / //_  __/  /  _/
 / _  /  _/ /   | |/ |/ /  / /    _/ /  
/_//_/  /___/   |__/|__/  /_/    /___/
 
limb3/ru/packages/fs.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)