Разработка лидирующих и эксклюзивных WEB-приложений на чистом коде(HTML,CSS,JS,PHP). Гарантия высокого качества!

» Статьи» php шаблонизатор недостатки

php шаблонизатор недостатки

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

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

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

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

  • Очень много весят библиотеки шаблонизаторов. Вес Smarty равер 1,08 МБ.
  • Любой шаблонизатор создает кэш файлы. Эти файлы так же имеют немалый вес и находятся в одной папке. На каждый вывод определённого куска кода уже есть по 2 файла кэша, что создает сильную нагрузку на сервер, поскольку файлов в одной папке много, при этом не предусмотрена разбивка по папкам.
  • Время интерпретации сайта, использующего самый быстрый шаблонизатор равен 0.022001028060913 сек. Это выполнение простенькой задачи (вывод массива на 3 статьи), что проигрывает чистому коду в 22 раза (0.00099992752075195 сек).
  • За счет множества подключаемых тяжёлый библиотек шаблонизатора, написанных на ООП, "сьедает" оперативной памяти сервера, для обработки только одного пользователя 461960 байт. Это в 125 раз больше, против чистого и качественного кода (3688 байт).

Я с ужасом представляю, если выводить весь более-мение полноценный сайт шаблонизатором, то уже сколько на это времени понадобится и оперативки. Это Вам не вывод 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-системы, фреймворки, шаблонизаторы, чем подходить к работе индивидуально.