Smarty и PHP синтаксис в одном документе - рекомендуется? - PullRequest
1 голос
/ 25 июля 2011

Я создаю сайт с использованием синтаксиса Smarty и PHP;Я узнал, что PHP-код можно использовать в Smarty на http://www.smarty.net/docs/en/language.function.php.tpl

Однако разве это хорошая идея - смешивать синтаксис Smarty с кодированием PHP?пока нет кода;все советы приветствуются.

Ответы [ 5 ]

2 голосов
/ 25 июля 2011

Я бы не стал смешивать эти два синтаксиса: либо использовать свой движок шаблонов, либо не использовать один ... Но не смешивайте оба!

Одна из целей движка шаблонов состоит в том, чтобы html-ребята изучили его, а не PHP - если вы смешаете и то, и другое, не достигните этой цели.

Если вы хотите использовать PHP в своих шаблонах, вы можете просто использовать PHP как шаблонизатор, в конце концов: -)

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

1 голос
/ 25 июля 2011

Smarty отображает данные, созданные PHP.Если вам нужны гибкие дизайны, все, что строго связано с отображением значений / объекта, должно быть в шаблоне.Поэтому, если вы измените способ отображения вещей, PHP не будет выполнять ненужные вычисления.Итак, подведем итог: перенос связанных с отображением вещей в код PHP - плохая идея.

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

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

1 голос
/ 25 июля 2011

Как правило, вы должны попытаться выполнить всю работу на стороне сервера в файле PHP и назначить вывод для последующего использования в файле шаблона. Лучше всего отделить бизнес-логику и логику представления и держать их в своих областях.

0 голосов
/ 26 июля 2011

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

Сохраняйте бизнес-логику и отображайте отдельно.

0 голосов
/ 25 июля 2011

Нет, это не очень хорошая идея. Самому Smarty наплевать - он все равно компилирует шаблоны в PHP - но you вырвет вам голову, так как ваши страницы станут беспорядочным спагетти-кодом только для записи. (был там, сделал это)

Smarty существует, чтобы абстрагировать ваши шаблоны от вашего PHP-кода, чтобы вы могли их несколько отделить. Если вы настаиваете на том, чтобы снова их перепутать - ну, может, код на сыром PHP тоже, верно? (подсказка: это даже худшая идея)

...