Почему я должен использовать систему шаблонов в PHP? - PullRequest
57 голосов
/ 12 января 2009

Почему я должен использовать систему шаблонов в PHP?

Причиной моего вопроса является то, что PHP сам по себе является многофункциональной системой шаблонов, зачем мне устанавливать другой шаблонизатор?

Единственные два профессионала, которых я нашел до сих пор:

  1. Немного более чистый синтаксис (иногда)
  2. Механизм шаблонов обычно недостаточно силен для реализации бизнес-логики, поэтому он заставляет вас разделять задачи. Использование шаблонов в PHP может соблазнить вас обойти принципы шаблонов и снова начать писать кодовый суп.

... и оба весьма незначительны по сравнению с минусами.

Маленький пример:

PHP

<h1><?=$title?></h1>
<ul>
  <? foreach ($items as $item) {?>
  <li><?=$item?></li>
  <? } ?>
</ul>

Smarty

<h1>{$title}</h1>
<ul>
  {foreach item=item from=$items}
  <li>{$item}</li>
  {/foreach}
</ul>

Я действительно не вижу никакой разницы.

Ответы [ 24 ]

0 голосов
/ 06 апреля 2013

Я несколько раз использовал tinybutstrong , который имеет довольно аккуратный и простой синтаксис. Нет петли или псевдокода в HTML-шаблон.

С их домашней страницы:

TinyButStrong - это библиотека, которая позволяет динамически создавать Страницы XML / HTML и любые другие файлы, основанные на текстовом источнике. Это Шаблонный движок для языка PHP. Это позволяет вам легко отображать информация из вашей базы данных, но и серьезно гармонизировать и упростить ваше программирование на PHP.

TinyButStrong ориентирован на HTML, но не специализируется на HTML. это означает, что он может работать с текстовыми файлами, XML, RSS, RTF, WML, Excel (xml), ... Плагин OpenTBS позволяет объединить OpenOffice и Ms Офисные документы.

0 голосов
/ 04 января 2013

система управления шаблонами, мы можем управлять файлами шаблонов отдельно. Время выполнения системы будет быстрее, чем в обычном PHP-проекте. поэтому здесь файлы PHP и файлы шаблонов поддерживаются отдельно.

после запуска файлов код будет сохранен в нем template_c. поэтому его не компилировать много раз.

0 голосов
/ 16 июля 2010

Лично я всегда использую движки шаблонов в php, python и т. Д.

Первая очевидная причина, уже упомянутая другими:

Это заставляет вас не использовать бизнес-логику в своих шаблонах.

Да, конечно, дисциплина будет хорошо, если она у вас есть.

Но это лишь небольшой аспект того, почему вы бы использовали шаблонизатор . Большинство из них - больше, чем просто движок, и их можно рассматривать как шаблонные рамки, нравится вам это или нет.

Например, Smarty также имеет расширенные функции кэширования, такие как частичное кэширование. Действительно полезные вещи, вещи, которые вы должны были бы делать самостоятельно, используя только php в качестве языка шаблонов.

И, пожалуйста, не забудьте все эти действительно полезные вспомогательные функции, просто быстрый поиск по документам. Большинство из них также предоставляют простой способ добавления собственных функций и / или инструментария.

Так что да, это вопрос выбора. Если вам нужны действительно простые шаблоны, попробуйте показать некоторую дисциплину и не допускать логику в свои шаблоны. Но когда вы ожидаете, что ваше приложение будет расти, вам в конечном итоге понадобятся функции шаблонной платформы. И к тому времени, надеюсь, вы не заново изобретаете колесо, кодируя его все сами.

И, наконец, что не менее важно, для меня есть одна особенность убийцы, доступная в некоторых шаблонных средах.

Наследование шаблона

Я узнал об этом с Джанго , и теперь я использую его в последней Smarty 3 . У ребят из платформы Symphony также есть Twig , который можно считать портом с синтаксисом Django.

Сначала это выглядит немного странно, но очень мощно. Вы строите свой скелет и определяете различные блоки. Вы можете расширить этот каркас и заполнить (переопределить) блоки своим контентом.

Для меня это хранитель!

0 голосов
/ 12 января 2009

Держу пари, что если бы язык шаблонов PHP был настолько принудительным, чтобы заставить его использовать его, вы бы вообще его не использовали. Возможность «выпрыгнуть» и действовать по-своему, когда попадаешь в беду, является одной из привлекательных особенностей PHP.

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

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

...