Есть ли какие-то преимущества для интеграции Smarty с Zend? - PullRequest
2 голосов
/ 11 апреля 2010

Я хорошо знаком со Smarty и недавно решил использовать Zend Framework для реализации.

, поскольку я знаю о различных преимуществах Smarty, я настоял, чтобы мой подрядчик включил Smarty в систему.

Но теперь я подвергаю сомнению свои предположения.

Должен ли я интегрировать Smarty в Zend Framework? просто потому, что я знаком с синтаксисом Smarty?

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

Ответы [ 4 ]

4 голосов
/ 11 апреля 2010

Пару лет назад мы использовали Smarty, заявив, что для не-разработчиков было « проще » (или, по крайней мере, не для разработчиков PHP) для интеграции они хотели в своем HTML-макете.

Дело в том, что вместо того, чтобы изучать основы PHP, они должны были изучать Smarty - и многие не очень хорошо изучили, надо добавить.


Теперь Smarty довольно старый, не в хорошем состоянии и ничего ... И Zend Framework ожидает, что люди будут использовать PHP в своих взглядах ...

Использование Smarty в представлениях вашего проекта, основанных на ZF, будет означать:

  • Разработчики должны будут учиться Smarty - и не только PHP + HTML
    • Даже если вы знаете Smarty, будете ли вы подрядчиком знать его достаточно хорошо, чтобы правильно его использовать?
    • А как насчет ваших коллег или людей, которых вы будете нанимать в будущем?
  • Проблемы с его интеграцией в ZF: даже если вы сможете использовать Smarty в своих шаблонах, возможно ли будет использовать полную мощность или ZF? Включение, помощники, частичные и все такое?


Еще одна причина, по которой многие из нас говорили: « use smarty », в прошлом заключалась в том, чтобы помочь разделить содержание и представление; но, поскольку вы уже используете MVC в своем приложении на основе ZF, для этого нет необходимости в smarty: если вы следуете рекомендациям ZF, вы уже разделяете их, даже если не используете Smarty.


Ну, в конце концов, я бы предпочел не использовать Smarty:

  • Он старый и не в хорошем состоянии.
  • Это не очень полезно в проекте на основе ZF (с MVC)
  • Может быть сложно интегрироваться в ваш проект.
1 голос
/ 11 апреля 2010

Я бы сказал, что это должны быть два отдельных вопроса:

  1. Должен ли я использовать шаблонизатор или PHP в качестве шаблонизатора?

    Общее назначение движка шаблонов - отделить слой вида от остальных.

    Smarty реализует V слой MVC. Но у Zend Framework это уже есть реализовано довольно хорошо. Так ты не добавляешь Ничего нового. Есть фильтры, помощники как в Smarty. Если вы этого не сделаете хотите смешать HTML и PHP, вы может разделить V на две части и использовать разметку Texitle для ваших шаблонов просмотра.

    Вот дебаты о том, стоит ли использовать шаблонизатор: http://fabien.potencier.org/article/34/templating-engines-in-php

  2. Если я хочу использовать шаблонизатор PHP, есть ли лучшие решения, чем Smarty сейчас?

    Да, например. PHPTAL , который также может быть легко интегрирован в ZF.

Остальное зависит от вас. Если вы привыкли работать с Smarty, или если спецификация проекта требует Smarty (например, для обратной совместимости), проблем с его использованием в ZF нет.

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

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

Модификаторы Varialbe Встроенный PLugins

Также Smarty имеет свое собственное кэширование, которое кэширует теги smarty в нативный PHP. Так что нет проблем с дополнительной обработкой шаблонов кеша.

Smarty 3 был недавно обновлен и улучшен.

0 голосов
/ 11 апреля 2010

Я использовал smarty в моем старом проекте и в некоторых проектах сейчас. Я также попытался интегрировать его с Zend. Но, как сказал сэр Паскаль Мартин, Zend уже хорошо справляется со слоем вида. Хотя я смог интегрировать его с Zend, у меня были следующие проблемы:

  • Интеграция Zend_Form с smarty стала проблемой.
  • Помощники и частичные представления стали немного сложнее.
  • умная кривая обучения
  • расположение ресурсов (tpl и т. Д.)

Кроме того, в конце я придерживаюсь представления Zend по умолчанию

...