×
kwomaster7@gmail.com

Прием заявок осуществляется: Пн-Пт с 9:00 по 17:00. Сб-Вс - выходной!

38(068)95-13-385 38(050)95-13-385

Вы здесь: главная / полезное / Php Шаблонизатор недостатки

Василий Кулик
07.02.2018
618 просмотров
Дата обновления: 01.24.2020

Php Шаблонизатор недостатки

Вот и добрались к php шаблонизаторам. Шаблонизаторы - это огромные и тяжёлые библиотеки, написаны на ООП и нужны для простых людей, которые не умеют разрабатывать индивидуальную архитектуру (ядно) проекта, поэтому и расхваляют шаблонизаторы. Если идти на поводу, как пёсик, слушая других многих "программистов", то все они утверждают, что это очень круто. Да не только круто, а й необходимо!

Если искать в интернете статейки и спрашивать других о подводных камнях и недостатках шаблонизаторов - правды Вам никто не скажет, по одной причине: никто не знает и не задумывался, какое безумие эти php-шаблонизаторы. Никто не тестировал, какую нагрузку берет на себя ЦП сервера, обрабатывая даже одного пользователя

Цель этой статьи раскрыть все "подводные" камни и ложь шаблонизаторов.

Шаблонизаторов в интернете очень много, их используют много CMS-систем, фреймворков, но есть и самые возлюбленные. Все шаблонизаторы работают одинаково и отчитаются своими конструкциями. Если верить документации, то Smarty - один из лёгких и быстроработающих шаблонизаторов. Давайте разбирать причины, почему от шаблонизаторов нужно срочно отказываться и почему у большинство веб-студий сайты тормозят.

Я с ужасом представляю, если выводить весь более-менее полноценный сайт шаблонизатором, то уже сколько на это времени понадобится и оперативки. Это Вам не вывод 3-х статей из массива, как было протестировано ради этой статьи.

Теперь разберёмся, почему шаблонизаторы так тормозят. Дело в том, чтобы вызвать цикл foreach, к примеру, нужно создать tpl-файл и написать в нём код цикла на языке шаблонизатора. Это выглядит так:

{foreach item=posts from=$data.posts}
 <div class="blok">
  <h2>{$posts.title}</h2>
  <div class="avtor">автор: {$posts.avtor}</div>
  <div class="text">
   {$posts.text}
  </div>
 </div><hr>
{foreachelse}
  Новостей нет
{/foreach}

Вторым этапом необходимо подключить эти бессмысленные и тяжелейшие библиотеки, которые этот код обработают и всё-равно вызовут цикл foreach, который пройдётся по массиву. А не проще, выбросить этот весь безумный мусор, отформатировать мозг от этих шаблонизаторов и просто написать цикл на php, который сразу пройдется по массиву и не будет вызывать какие-то шаблонизаторы и делать миллионы лишних движений?

<?php foreach($posts as $post){?>
 <div class="blok">
  <h2><?php echo $post['title'];?></h2>
  <div class="avtor">автор: <?php echo $post['avtor'];?></div>
  <div class="text">
   <?php echo $post['text'];?>
  </div>
 </div><hr>
<?php }?>

И не надо никаких шаблонизаторов. Да и так же само можно отделить php-код от html-кода, нужен лишь опыт и мозги ;). Это касается не только циклов, но и условий, подключаемых файлов, всего остального:

Код шаблонизатора условия {if $data.template=='item'}/*действия 1*/ {else}/*действия 2*/{/if}
Против чистого PHP
if($data['template']=='item'){/*действия 1*/}else{/*действия 2*/}
Код шаблонизатора на подключение файлов
{include file='post.tpl'}
Против чистого php
include 'post.tpl';

Это был только маленький пример. Эти коды должны обработаться библиотеками шаблонизатора и в итоге вызваться обычный код php. Разве не проще сразу php-код написать? Использовать шаблонизаторы - равносильно для датчика подключать ещё один датчик!

Я лишь одно скажу. Программист, который пишет на чистом коде, он прекрасно понимает, какая это всё лажа, а модераторы не смотрят на скорость работы сайта и не заботятся о качестве кода. Для них это нормально, что сайты тормозят, но объяснить причины, почему их и множество в интернете сайтов тормозят они не могут. Мною доказано, что шаблонизаторы - одна из причин затормаживания многих сайтов. Ведь 95% сайтов делают веб-студии, быстро "сбивая" деньги, а о скорости и качестве никто не думает.

Вот я и раскрыл все секреты и скрываемые стороны php шаблонизаторов и разоблачил их. Ведь никакая веб-студия не может сделать проект, который будет равняться по скорости проектам, которые были написаны программистом. Легче же установить готовые CMS-системы, фреймворки, шаблонизаторы, чем подходить к работе индивидуально.

Закрепить полученные знания онлайн

Комментарии (3):

Анатолий
Я делал сайт на фреймворке и шаблонизаторе. Сайт стал медленно работать. Я сделал без него и сайт стал быстрее работать. Было и такое
Публикация: 2020.03.14_19:07:20

Admin
Анатолий, очень хорошо, что Вы убедились в этом самостоятельно на практике! PHP - это все-таки интерпретатор, а не компилятор ;)
Публикация: 2020.03.15_18:39:59

Алексей
А я вот думаю почему мой сайт стал работать плохо после того, как мне его переделали с использование шаблонизатора. Вот оно что. Везде врут и делают плохо.
Публикация: 2020.01.24_20:31:32

Предложить комментарий