- 5 популярных PHP-шаблонизаторов
- Зачем нужны шаблонизаторы?
- Список шаблонизаторов для сравнения
- Blade
- Mustache
- Smarty
- Twig
- Volt
- Как выбрать шаблонизатор?
- Blade
- Синтаксис и функциональность
- Документация и поддержка
- Производительность
- Mustache
- Синтаксис и функциональность
- Документация и поддержка
- Smarty
- Синтаксис и функциональность
- Документация и поддержка
- Производительность
- Twig
- Синтаксис и функциональность
- Документация и поддержка
- Производительность
- Volt
- Синтаксис и функциональность
- Документация и поддержка
- Производительность
- Выводы
- Php Шаблонизатор недостатки
5 популярных PHP-шаблонизаторов
Несмотря на то, что PHP уже сам по себе в какой-то степени шаблонизатор, существует достаточно других шаблонизаторов, которые появились не просто так. В этой статье я сравню между собой популярные шаблонизаторы на PHP.
Зачем нужны шаблонизаторы?
Чем сложнее приложение, тем важнее разделять логику и представление. Только в случае успешного разделения логики от представления backend-разработчики смогут эффективно сотрудничать с frontend-разработчиками. Благодаря шаблонизаторам frontend-разработчики и верстальщики могут изменять внешний вид web-приложения, используя знакомый синтаксис. Обычно шаблоны представляют собой небольшие и в некотором роде независимые куски HTML, в которые опционально встроен вывод переменных, какие-то простые логические конструкции и так далее.
Иногда фронт вообще написан на JavaScript, а общение с бэком происходит посредством API, но это совсем другая история. Эта статья о ситуации, когда вёрстка является частью монолитного приложения.
Список шаблонизаторов для сравнения
К шаблонизаторам применялись следующие критерии: они должны быть написаны на PHP, активно поддерживаться и быть признанными сообществом PHP.
Blade
Этот шаблонизатор используется в Laravel — популярном PHP-фреймворке, созданном примерно в 2011. По слухам, причиной скорости Blade является небольшой список регулярных выражений для замены.
Подписчики | Звёздочки | Форки |
4 642 | 73 312 | 23 708 |
Blade также неофициально существует отдельно от Laravel, чтобы использовать с другим фреймворком, например: https://github.com/jenssegers/blade
@section('sidebar') This is the master sidebar. @show Mustache
Mustache доступен для практически неограниченного количества языков, в том числе и PHP. Также он содержит минимум логики: замена, цикл foreach, проверка на null.
Подписчики Звёздочки Форки 405 15 904 2 458
Подписчики Звёздочки Форки 119 3 287 425
Hello > You have just won > dollars! > Well, > dollars, after taxes. >
Smarty
Smarty появился в начала нулевых, до сих пор развивается и конкурирует с более молодыми проектами.
Подписчики Звёздочки Форки 183 2 094 473
Twig
Данный шаблонизатор обрёл свою популярность благодаря Фабьену Потенцеруб, внедрившему его в систему представлений фреймворка Symfony. Тем не менее, Twig может быть внедрён практически в любой проект независимо от фреймворка.
Подписчики Звёздочки Форки 257 4 797 1 020
Volt
Volt используется в фреймворке Phalcon (фреймворк, написанный на C и распространяемый как PHP-расширение). Из недостатков можно отметить лишь то, что Volt можно использовать только в Phalcon, то есть нет возможности использовать в проекте на другом фреймворке.
Подписчики Звёздочки Форки 752 9 460 1 734
Как выбрать шаблонизатор?
При выборе шаблонизатора нужно учитывать следующие факторы: синтаксис, логика, расширяемость, документация, активность разработки, поддержка сообщества и производительность.
Blade
Синтаксис и функциональность
Blade поддерживает наследование шаблонов, секции, безопасный ввод содержимого и простой синтаксис. Blade разрешает использование PHP внутри шаблонов.
Документация и поддержка
Blade отлично документирован, но документация носит характер обзоров, в то время как более детальная информация содержится на сторонних ресурсах.
Производительность
Во время теста скорость достигала 100 000 шаблонов в секунду. Но если учитывать обработку шаблонов вместе с загрузкой фреймворка, то скорость около 2 200 шаблонов в секунду.
Mustache
Синтаксис и функциональность
Шаблоны Mustache не могут содержать логику, поэтому backend-разработчикам приходится реализовывать излишнюю логику, связанную с представлением.
Документация и поддержка
Ввиду ограниченных возможностей Mustache не требуется большой и подробной документации.
Smarty
Синтаксис и функциональность
Синтаксис лаконичен и прост для восприятия. Функционал большой и расширяемый.
Документация и поддержка
Документация у Smarty хорошо организована. Сайт выглядит немного устаревшим, но это является проблемой.
Производительность
Smarty довольно быстро обрабатывает некэшируемые шаблоны (9 634 шаблонов в секунду) and ещё быстрее — кэшируемые (57 115 шаблонов в секунду).
Twig
Синтаксис и функциональность
Twig поставляется с полным набором функций, фильтров, тестов и расширяемых макросов.
Документация и поддержка
Документация отлично организована, информативна и содержит наглядную информацию. Сообщество вокруг Twig большое, ведётся активная разработка на GitHub. Twig используется в Drupal 8, второй по популярности CMS.
Производительность
Обработка некэшируемых шаблонов происходит со скоростью 4 318 шаблонов в секунду, а кэшированных — 5 982.
Volt
Синтаксис и функциональность
Volt очень похож на Twig. В нём доступен функционал для создания собственных фильтров, макросов и расширений движка.
Документация и поддержка
Документация чистая, информативная и наглядная. Разработка Volt, как и Phalcon, идёт на GitHub полным ходом.
Производительность
Ввиду того, что фреймворк написан на C, Volt обрабатывает 23 900 шаблонов в секунду и вдвое больше при включении кэширования.
Выводы
Наиболее оптимальным вариантом является Twig. Потому что шаблонизатор не зависит от фреймворка, запускается очень быстро, содержит достаточно функционала, имеет отличную документацию и активно развивается.
Php Шаблонизатор недостатки

Я с ужасом представляю, если выводить весь более-менее полноценный сайт шаблонизатором, то уже сколько на это времени понадобится и оперативки. Это Вам не вывод 3-х статей из массива, как было протестировано ради этой статьи.
Теперь разберёмся, почему шаблонизаторы так тормозят. Дело в том, чтобы вызвать цикл foreach, к примеру, нужно создать tpl-файл и написать в нём код цикла на языке шаблонизатора. Это выглядит так:
автор:
Новостей нет
Вторым этапом необходимо подключить эти бессмысленные и тяжелейшие библиотеки, которые этот код обработают и всё-равно вызовут цикл foreach, который пройдётся по массиву. А не проще, выбросить этот весь безумный мусор, отформатировать мозг от этих шаблонизаторов и просто написать цикл на php, который сразу пройдется по массиву и не будет вызывать какие-то шаблонизаторы и делать миллионы лишних движений?
автор:
?>?php>
И не надо никаких шаблонизаторов. Да и так же само можно отделить php-код от html-кода, нужен лишь опыт и мозги ;). Это касается не только циклов, но и условий, подключаемых файлов, всего остального:
Код шаблонизатора условия /*действия 1*/ /*действия 2*/ Против чистого PHP if($data[‘template’]==’item’)*действия>else*действия> Код шаблонизатора на подключение файлов Против чистого php include ‘post.tpl’;
Это был только маленький пример. Эти коды должны обработаться библиотеками шаблонизатора и в итоге вызваться обычный код php. Разве не проще сразу php-код написать? Использовать шаблонизаторы — равносильно для датчика подключать ещё один датчик!
Я лишь одно скажу. Программист, который пишет на чистом коде, он прекрасно понимает, какая это всё лажа, а модераторы не смотрят на скорость работы сайта и не заботятся о качестве кода. Для них это нормально, что сайты тормозят, но объяснить причины, почему их и множество в интернете сайтов тормозят они не могут. Мною доказано, что шаблонизаторы — одна из причин затормаживания многих сайтов. Ведь 95% сайтов делают веб-студии, быстро «сбивая» деньги, а о скорости и качестве никто не думает.
Вот я и раскрыл все секреты и скрываемые стороны php шаблонизаторов и разоблачил их. Ведь никакая веб-студия не может сделать проект, который будет равняться по скорости проектам, которые были написаны программистом. Легче же установить готовые CMS-системы, фреймворки, шаблонизаторы, чем подходить к работе индивидуально.
Что-то не понятно?
Спросите у нас и мы обязательно Вам поможем!
Рекомендуемые статьи этой категории
Правильный этап выбора веб-студии, не просто по красивом портфолио, но и по оценкам качества в Google, для создания вашего сайта, на перспективу. Оценка квалификации программистов и проверка качества сайтов в портфолио студии.
Примеры самых красивых дизайнов от лучших дизайнеров на топовых платформах мира. Берите идеи и создавайте лучшие дизайны своих сайтов, для привлечения клиентов и улучшения продаж и успехов в SEO.
Выбор хостинга, виртуального сервера(VPS), физичесского сервера, для Вашего проекта с ориентировкой на цену, посещаемость и безопасность. Современный и проверенный алгоритм выбора хостинга и сервера, чтобы Ваш сайт попал гарантированно в ТОП!
ТОП распространенных ошибок верстальщиков и методы исправления. Скриншоты результатов ошибок и примеры кода, для их устранения.