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

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


limb3:ru:packages:fs:lmb_file_locator

lmbFileLocator

Класс lmbFileLocator - основной класс пакета FS, который ищет файлы по алиасам при помощи «списка локаций». Список локаций - это объект, реализующего интерфейс lmbFileLocations.

Алиас - это укороченное название файла, например news/index.html. Полный путь до файла (резолвинг алиаса) будет определен объектом класса lmbFileLocator. В результате резолвинга алиса мы можем получить что-то наподобие /var/dev/project/my_project/templates/ru/news/index.html.

Общая схема реализации этой подсистемы выглядит следующим образом:

 }

Итак, lmbFileLocator принимает объект, реализующий lmbFileLocations:

  $locator = new lmbFileLocator(new lmbFileLocationsList(array('/dir1', '/dir2', '/dir3')));

Для поиска файлов lmbFileLocator содержит два метода:

  • locate($alias, $params = array())
  • locateAll($prefix = '').
  • $alias - это укороченное название файла, который нужно найти.
  • $params - список дополнительных параметров для поиска, передаются в список локаций.

Например:

  $locator->locate('news/news.html', array('lan' => 'ru'));

lmbFileLocator часто используется в наборах инструметов (tools), например, в пакете WEB_APP в классе lmbWebAppTools :: createController($controller_name) или в пакете VIEW в методе lmbViewTools :: getWactLocator().

Пример создания локатора:

  $locations = new lmbIncludePathFileLocations('/settings/');
  $locator = new lmbCachingFileLocator(new lmbFileLocator($locations)); 

Здесь будет создан кеширующий lmbCachingFileLocator, который будет искать любые файлы файлы в папках /setting/ в папках, указанных в include_path. Например, при поиске conf-файла routes.conf.php он может вернуть var/dev/limb/web_app/settings/routes.conf.php

Пример инициализации локатора можно также увидеть в методе lmbFsTools :: getFileLocator().

Обсуждение

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