Когда использовать Smarty и когда MVC фреймворки - PullRequest
1 голос
/ 03 января 2012

Я делаю проект, который был разработан в smarty .
Я никогда не использовал его раньше, но он выглядит хорошо и чисто, и у него есть несколько ярлыков, чтобы делать вещи.Но я всегда использовал MVC frameworks (codeignter), он также имеет свою собственную систему шаблонов. В которой также используется php, как smarty.Так что теперь я запутался между когда использовать Smarty и когда MVC фреймворки .

Ответы [ 2 ]

4 голосов
/ 21 апреля 2012

Я думаю, что ваш вопрос менее "Когда я должен использовать Smarty поверх MVC Framework?" и еще "Какая разница?" Поэтому я собираюсь ответить на основании этого предположения

Smarty

Smarty - это PHP Template Engine, что означает, что это препроцессор php, который принимает пользовательский формат и переводит его в PHP.

{$ tags} == <? Php echo $ tags?>

Он также поддерживает дополнительные функции шаблонов, такие как наследование шаблонов, что позволяет дизайнеру / разработчику создавать шаблоны, расширяющие другие шаблоны.

Это примерно то, где заканчивается Smarty.

MVC

MVC-фреймворки, такие как CodeIgniter , CakePHP или Lithium PHP - это фреймворки PHP, которые включают архитектуру MVC, позволяющую разработчику писать сложные приложения, разделяя проблемы кодирования например, где обрабатывать сложную логику (модель), где размещать пользовательский интерфейс (представление) и где обрабатывать взаимодействие между логикой и пользователем (контроллером). <= <em>СУПЕР простое описание.

Эти инфраструктуры также имеют тенденцию включать полезные библиотеки и классы, позволяющие разработчикам быстро разрабатывать и развертывать свои приложения. Эти классы обычно решают общие требования кодирования, такие как (но не ограничиваясь этим) простота интеграции базы данных SQL и запросов к ней, обработка аутентификации и проверка на стороне сервера.

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

Бесстыдная заглушка

Я недавно написал плагин для Lithium PHP , расширяющий фреймворк для поддержки Smarty - li3_smarty

Окончательный ответ

Таким образом, вы можете использовать Smarty в любое время, независимо от того, используете вы MVC или нет.

Если вы пишете сложное приложение и вам требуется smarty, то есть вероятность, что кто-то уже написал модуль / плагин / компонент / помощник для интеграции Smarty в среду MVC, которую вы просматриваете.

Однако, если вам не требуется вся мощь фреймворка, просто добавьте Smarty в свой оригинальный PHP-проект, и все будет в порядке.

Надеюсь, это помогло.

4 голосов
/ 03 января 2012

Smarty может использоваться как часть реализации View некоторой инфраструктуры MVC.Итак, ваш вопрос о сравнении яблок и апельсинов

Как вы уже упоминали

, он также имеет свою собственную систему шаблонов

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

...