Table of Contents
Архитектура версии 2.0 позволяет внедрять плагины, которыми являются практически все настраиваемые элементы функционала Smarty. Сюда входят:
- функции
- модификаторы
- блоковые функции
- функции компилятора
- префильтры
- постфильтры
- фильтры вывода
- ресурсы
- вставки
За исключением ресурсов, в целях обратной совместимости с
предыдущими версиями, сохранена возможность регистрации функций
посредством register_* API.
Если вы не используете API, а вместо этого модифицируете свойства
$custom_funcs
, $custom_mods
и
некоторые другие напрямую, тогда вам придется подогнать ваши скрипты под
использование API или преобразовать добавленную вами функциональность в
плагины.
Плагины загружаются только по необходимости. Только те модификаторы, функции, ресурсы и т.д., которые используются в шаблоне, будут загружены. К тому же, каждый плагин загружается только один раз, даже если у вас есть несколько экземпляров Smarty, работающих в пределах одного запроса.
Пре/постфильтры и фильтры вывода заслуживают отдельного упоминания. Так как они не упоминаются в шаблонах, они должны быть зарегистрированы и загружены неявно через API-функции ещё до обработки шаблона. Порядок выполнения нескольких фильтров одного типа зависит от порядка, в котором они регистрировались или загружались.
Директория плагинов может быть строкой, содержащей путь, или массивом, содержащим множество путей. Чтобы установить плагин, просто поместите его в одну из этих директорий и Smarty автоматически будет его использовать.