Инструменты пользователя

Инструменты сайта


limb3:ru:packages:wact:pros_and_cons

Плюсы и минусы WACT шаблонизатора

Плюсы WACT

  • WACT использует декларативную логику описания. То есть WACT-шаблоны - это html-документы с вкраплениями XML-тегов. Никакого дополнительного синтаксиса, обучение происходит очень быстро.
  • WACT содержит мощные средства для компоновки шаблонов: обворачивание, включение, множественное обворачивание. Мы не знаем ни одного шаблонизатора, который может позволить подобные вещи.
  • WACT хорошо подходит для верстальщиков, так как все, кроме вывода переменных - это обычные теги, выучить которые очень легко. Легко огранизовать вывод списков, вывод пейджера, оформление форм и списков ошибок валидации, включение другого шаблона и т.д. Кроме этого, композиция шаблонов полностью может быть отдана на откуп верстальщику, он может выделять общие части как ему будет угодно - программист для этой работы не нужен.
  • WACT компилируемый шаблонизатор, где код первоначального шаблона сначала переводится в готовый к запуску php-скрипт, как например, это происходит в Smarty. Причем шаблон компилируется целиком, поэтому композиция (разбиение шаблона на части, обворачивание ит.д. ) никак не влияет на скорость исполнения шаблона, так как он собирается в одно целое при компиляции, от отличие, например, от Smarty.
  • Компиляция и достаточно чистый php-код откомпилированного шаблона делает WACT весьма быстрым шаблонизатором. Падение в производительности по сравнению с чистым php составляет приблизительно 3-4 раза (наши личные замеры) и этот отрыв при увеличении сложности шаблонов только уменьшается, так как WACT - все таки объектный шаблонизатор и на его инициализацию требуется больше ресурсов, чем на обычный php-файл.
  • WACT - расширяемый шаблонизатор. Можно легко добавлять свои теги и фильтры, создавать целые пакеты со своими тегами или фильтрами, как например, это имеет место в пакете WEB_APP.
  • Механизмы поиска шаблонов и система настроек выполнена в виде набора интерфейсов и базовых классов. В простом случае возможностей базовой реализации будет вполне достаточно. Однако при необходомости, можно будет легко внедрить, например, кеширование шаблонов, в зависимости от языка, поиск тегов в каких-то определенных папках, сменить схему хранения шаблонов и т.д. В плане настроек WACT - очень гибок.
  • WACT - это компонентый шаблонизатор. Это значит, что вы можете изменять состояние его компонентов во время исполнения через ООП API. Это также значительно облегчает, например, работу с формами - элементы формы и сама форма - компоненты, однако в первоначальном шаблоне - это обычные html-теги и никакого дополнительного кода не требуется.
  • WACT полностью поддерживает работу с итераторами и объектными контейрами данных. Все базовые теги реализованы так, как если бы в данные в шаблонизатор приходили только в виде итераторов. Даже обычные массивы WACT обворачивает во внутреннюю форму итератора. Это имеет свой недостаток - несколько снижает скорость (см. ниже), но в целом дает множество удобств (если вы будете изучать Limb3, то эти преимущества станут быстро очевидными).
  • WACT позволяет очень свободно оперировать данными внутри шаблона. Данные можно не только выводить, но можно также легко передавать данные с одного уровня на другой, использовать одни и те же данные повторно и т.д. Причем вся логика по передаче данных может (не обязательно) находиться прямо в шаблонах и тоже выглядит как обычные теги.
  • Внутри WACT-а можно использовать обычные php-вставки. Причем в этих вставках вы также можете взаимодействовать с шаблоном через его API(ограниченно).
  • Limb3 пакет WEB_APP содержит большой набор раcширений, которые позволяет получать данные прямо из шаблона, легко передавать данные с уровня на уровень, сортировать данные, применять ограничения и т.д. Также есть средства, которые позволяют вызывать любые методы определенных объектов с передачей им необходимых параметров. Вы можете реализовать нечто похожее или воспользоваться нашими наработками.

Минусы WACT

  • В отличие от PHP шаблона(код с HTML разметкой) WACT требует знаний своего синтаксиса и определенных идиом использования.
  • Все-таки, если скорость для вас - главное и вы ведете борьбу за каждую тысячную секунды, а кеширование невозможно - то native-php - это ваш выбор, а не WACT. Дело в том, что WACT работает с данными через дополнительные объекты, плюс требует парсинга небольшого количества базовых классов - эта особенность дает о себе знать в любом случае.
  • WACT не самый легкий для освоения шаблонизатор, который может в некоторых случаях работать неожиданным для вас способом. Такие понятия, как контексты, DBE и т.д. требуют времени на освоение. Иногда путаницу вводят обычные html-теги, такие как <form>, <input> которые могут обрабатываться WACT-ом и иметь дополнительное поведение, а могут и нет.

Почему так много плюсов и так мало минусов? Мы действительно считаем WACT весьма очень удачным продуктом. Если у вас есть возражения на этот счет - пишите в форум!

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
   __ __   ___    __  ___   ___   ____
  / //_/  / _ \  /  |/  /  / _ \ /_  /
 / ,<    / , _/ / /|_/ /  / // /  / /_
/_/|_|  /_/|_| /_/  /_/  /____/  /___/
 
limb3/ru/packages/wact/pros_and_cons.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)