====== lmbFileLocator ====== lmbFileLocator - основной класс пакета FileSchema, который ищет файлы по алиасам при помощи "списка локаций". Список локаций - это объект, реализующего интерфейс [[lmbFileLocations]]. Алиас - это укороченное название файла, например news/index.html. Полный путь до файла (резолвинг алиаса) будет определен объектом класса lmbFileLocator. В результате резолвинга алиса мы можем получить что-то наподобие /var/dev/project/my_project/templates/ru/news/index.html. Итак, lmbFileLocator принимает объект, реализующий lmbFileLocations, а также так называемый паттерн, который он будет применять для алиаса, например: $locator = new lmbFileLocator(new lmbPackagesFileLocations('/template'), '/_en/*'); Для поиска файлов lmbFileLocator содержит два метода locate($alias, $params = array()) и locateAll($prefix = ''). $alias - это укороченное название файла, который нужно найти. $params - список дополнительных параметров для поиска, передаются в список локаций. В примере выше мы создали локатор, который будет искать любые файлы в каталогах /template/ всех пакетов (см. также [[lmbPackagesFileLocations]]), при это применяя /_en/* для алиаса, который был передан для поиска. То есть $locator :: locate('news.html') будет искать /_en/news.html в папках /template пакетов. [[lmbFileLocator]] часто используется в наборах инструметов (см. [[limb3_2007_3:ru:packages:toolkit|пакет Toolkit]]), например, в пакете [[limb3_2007_3:ru:packages:web_app|WEB_APP]] в классе [[limb3_2007_3:ru:packages:web_app:lmbWebAppTools|lmbWebAppTools]]. Пример создания локатора: $locations = new lmbPackagesFileLocations('/settings/'); $locator = new lmbCachingFileLocator(new lmbFileLocator($locations)); Здесь будет создан кеширующий [[lmbCachingFileLocator]], который будет искать любые файлы файлы в папках /setting/ пакетов и ядра. Например, при поиске ini-файла common.ini он может вернуть LPKG_WEB_APP_DIR/settings/common.ini