Шаблонизатор Smarty
Smarty это компилирующий обработчик шаблонов для PHP позволяющий отделить логику и HTML-верстку веб-приложения.
Скачать библиотеку и посмотреть документацию можно на https://www.smarty.net/download
Содержание архива smarty-3.1.32.zip переносим в директорию /smarty/ в корень сайта, в index.php подключаем библиотеку и задаем переменные шаблона.
require '/smarty/libs/Smarty.class.php'; $smarty = new Smarty; // Включение кэширования. $smarty->caching = true; // Время жизни кеша в секундах (-1 - включает его навсегда). $smarty->cache_lifetime = 120; // Передача значений в шаблон: $smarty->assign('h1', 'Заголовок H1'); $smarty->assign('text', 'Hello World. '); $smarty->assign('number', 200); // Обычный массив. $smarty->assign( 'array_1', array( 'Понедельник', 'Вторник', 'Среда' ) ); // Ассоциативный массив. $smarty->assign( 'array_2', array( 'item_a' => 'Январь', 'item_b' => 'Февраль', 'item_c' => 'Март' ) ); // Многомерный массив. $smarty->assign( 'array_3', array( array( 'id' => 1, 'name' => 'Весна', ), array( 'id' => 2, 'name' => 'Лето', ), array( 'id' => 3, 'name' => 'Осень', ), ) ); // Вывод шаблона. $smarty->display('index.tpl');
Далее нужно создать директорию /templates/ , а в ней файл шаблона index.tpl .
В шаблонах Smarty применяются следующие конструкции:
Smarty Icon
You may use the Smarty logo according to the trademark notice. For sponsorship, advertising, news or other inquiries, contact us at:
Sites Using Smarty
Advertisement
Chapter 1. Что такое Smarty? | ||
---|---|---|
Prev | Part I. Приступая к работе | Next |
Chapter 1. Что такое Smarty?
Smarty — это компилирующий обработчик шаблонов для PHP. Говоря более четко, он предоставляет один из инструментов, которые позволяет добиться отделения прикладной логики и данных от представления. Это очень удобно в ситуациях, когда программист и верстальщик шаблона — различные люди. Например, скажем, вы создаете страницу, которая показывает газетную статью.
- Название статьи, автор и сама статья — элементы, которые не содержат никакой информации о том, как они будут представлены. Их передают в Smarty из приложения.
- Затем верстальщик шаблона редактирует шаблоны и использует комбинацию тэгов HTML и тэгов шаблона, чтобы отформатировать представление этих переменных, содержащих элементы типа таблиц HTML, фоновых цветов, размеров шрифта, стилей, SVG и т.д.).
- Однажды программист захочет изменить способ хранения статьи, то есть внести изменения в логику приложения. Это изменение не вызовет изменений в шаблонах. Содержание будет все еще передаваться в шаблон таким же самым способом.
- Аналогично, если верстальщик захочет полностью перепроектировать шаблоны, это не потребует никаких изменений в прикладной логике.
- Таким образом, программист может вносить изменения в прикладную логику без необходимости изменения шаблонов, а дизайнер шаблонов может вносить изменения в шаблоны без вреда для прикладной логики.
Одно из предназначений Smarty — это отделение логики приложения от представления.
- Конечно же, шаблоны могут содержать в себе логику, но лишь при условии, что эта логика необходима для правильного представления данных. Такие задачи, как подключение других шаблонов, чередующаяся окраска строчек в таблице, приведение букв к верхнему регистру, циклический проход по массиву для его отображения и т.д. — всё это примеры логики представления.
- Тем не менее, не следует полагать, что Smarty заставляет вас разделять прикладную логику и логику представления. Smarty не видит разницы между этими вещами, так что переносить прикладную логику в шаблоны вы можете на свой страх и риск.
- Если же вы считаете, что в шаблоне вообще не должно быть логики, вы можете ограничиться использованием чистого текста и переменных.
Одна из уникальных возможностей Smarty — компилирование шаблонов. Это означает, что Smarty читает файлы шаблонов и создает PHP-код на их основе. Код создаётся один раз и потом только выполняется. Поэтому нет необходимости в медленной обработке файл шаблона для каждого запроса. Каждый шаблон может пользоваться всеми преимуществами таких компиляторов PHP и кэшируюших решений, как eAccelerator, ionCube, mmCache, Zend Accelerator и прочих.
Некоторые особенности Smarty:
- Он очень быстр.
- Он эффективен, так как обработчик PHP делает за него грязную работу.
- Никакой лишней обработки шаблонов, они компилируются только один раз.
- Перекомпилируются только те шаблоны, которые изменились.
- Вы можете легко создавать собственные пользовательские функции и модификаторы переменных, что делает язык шаблонов чрезвычайно расширяемым.
- Настраиваемые тэгов шаблона, то есть вы можете использовать , <> , и т.д.
- Конструкции
…… передаются обработчику PHP, так что синтаксис выражения может быть настолько простым или сложным, насколько вам угодно. - Допустимо неограниченное вложение секций, условий и т.д.
- Существует возможность включения PHP-кода прямо в ваш шаблон, однако обычно в этом нет необходимости (и это не рекоммендуется), так как движок весьма гибок и расширяем.
- Встроенный механизм кэширования.
- Произвольные источники шаблонов.
- Пользовательские функции кэширования.
- Компонентная архитектура.
Prev | Up | Next |
Part I. Приступая к работе | Home | Chapter 2. Установка |
Smarty Icon
You may use the Smarty logo according to the trademark notice. For sponsorship, advertising, news or other inquiries, contact us at:
Sites Using Smarty
Advertisement
Chapter 1. Что такое Smarty? | ||
---|---|---|
Prev | Part I. Приступая к работе | Next |
Chapter 1. Что такое Smarty?
Smarty — это компилирующий обработчик шаблонов для PHP. Говоря более четко, он предоставляет один из инструментов, которые позволяет добиться отделения прикладной логики и данных от представления. Это очень удобно в ситуациях, когда программист и верстальщик шаблона — различные люди. Например, скажем, вы создаете страницу, которая показывает газетную статью.
- Название статьи, автор и сама статья — элементы, которые не содержат никакой информации о том, как они будут представлены. Их передают в Smarty из приложения.
- Затем верстальщик шаблона редактирует шаблоны и использует комбинацию тэгов HTML и тэгов шаблона, чтобы отформатировать представление этих переменных, содержащих элементы типа таблиц HTML, фоновых цветов, размеров шрифта, стилей, SVG и т.д.).
- Однажды программист захочет изменить способ хранения статьи, то есть внести изменения в логику приложения. Это изменение не вызовет изменений в шаблонах. Содержание будет все еще передаваться в шаблон таким же самым способом.
- Аналогично, если верстальщик захочет полностью перепроектировать шаблоны, это не потребует никаких изменений в прикладной логике.
- Таким образом, программист может вносить изменения в прикладную логику без необходимости изменения шаблонов, а дизайнер шаблонов может вносить изменения в шаблоны без вреда для прикладной логики.
Одно из предназначений Smarty — это отделение логики приложения от представления.
- Конечно же, шаблоны могут содержать в себе логику, но лишь при условии, что эта логика необходима для правильного представления данных. Такие задачи, как подключение других шаблонов, чередующаяся окраска строчек в таблице, приведение букв к верхнему регистру, циклический проход по массиву для его отображения и т.д. — всё это примеры логики представления.
- Тем не менее, не следует полагать, что Smarty заставляет вас разделять прикладную логику и логику представления. Smarty не видит разницы между этими вещами, так что переносить прикладную логику в шаблоны вы можете на свой страх и риск.
- Если же вы считаете, что в шаблоне вообще не должно быть логики, вы можете ограничиться использованием чистого текста и переменных.
Одна из уникальных возможностей Smarty — компилирование шаблонов. Это означает, что Smarty читает файлы шаблонов и создает PHP-код на их основе. Код создаётся один раз и потом только выполняется. Поэтому нет необходимости в медленной обработке файл шаблона для каждого запроса. Каждый шаблон может пользоваться всеми преимуществами таких компиляторов PHP и кэшируюших решений, как eAccelerator, ionCube, mmCache, Zend Accelerator и прочих.
Некоторые особенности Smarty:
- Он очень быстр.
- Он эффективен, так как обработчик PHP делает за него грязную работу.
- Никакой лишней обработки шаблонов, они компилируются только один раз.
- Перекомпилируются только те шаблоны, которые изменились.
- Вы можете легко создавать собственные пользовательские функции и модификаторы переменных, что делает язык шаблонов чрезвычайно расширяемым.
- Настраиваемые тэгов шаблона, то есть вы можете использовать , <> , и т.д.
- Конструкции
…… передаются обработчику PHP, так что синтаксис выражения может быть настолько простым или сложным, насколько вам угодно. - Допустимо неограниченное вложение секций, условий и т.д.
- Существует возможность включения PHP-кода прямо в ваш шаблон, однако обычно в этом нет необходимости (и это не рекоммендуется), так как движок весьма гибок и расширяем.
- Встроенный механизм кэширования.
- Произвольные источники шаблонов.
- Пользовательские функции кэширования.
- Компонентная архитектура.
Prev | Up | Next |
Part I. Приступая к работе | Home | Chapter 2. Установка |
При подготовке материала использовались источники:
https://snipp.ru/php/smarty
https://www.smarty.net/docsv2/ru/what.is.smarty.tpl
https://www.smarty.net/docsv2/ru/what.is.smarty