Замена smarty на php

переименовать page.tpl в page.php и вызвать
PHP:
include("$page.php");
Не везде это удобно... В некоторых ситуациях html генерится несколькими шаблонами в пределах одной функции. Или использование темплейта в foreach..
 
Смарти очень быстрый... Его используют в многих скриптах... тк удобнее пыха.
Смарти он на то и смарти, чтобы сделать жизнь проще. Всегда приходится чем-то жертвовать...

Зачем его придумали я так и не понял, верстальщики его учить не хотят, программист на php, даже начинающий успешно применит стандартные циклы и if, else.
Для нормальной фильтрации вывода переменных стандартных функций почти всегда не хватает и всё равно пишешь свои.
Для вывода чего-то сложного в одну функцию, сейчас можно использовать widget`ы, helper`ы или быстренько набросать функцию.
За 3 года работы над крупным проектом, шаблонизатором для которого был смарти, я его почти возненавидел за кучу assign разбросанных по php скрипту, плохую гибкость для списков, странную логику циклов. А этот набор покрывает 80% основных потребностей.
 
Не везде это удобно... В некоторых ситуациях html генерится несколькими шаблонами в пределах одной функции. Или использование темплейта в foreach..
Напиши это на смарти:

test.php
PHP:
# Все функции будут работать даже на самых ранних версиях PHP 4 ;)
$data = [
  'case1' => ['title' => 'one'],
  'case2' => ['title' => 'two'],
  'case3' => ['title' => 'three'],
];

$tpl = '';
foreach ($data as $case) {
  $tpl .= include('row.php');
}

echo $tpl;

row.php
PHP:
<?
return '<h1>' . $case['title'] . '</h1>';

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

PS не скажу что сам я не использую шаблонизаторы, сижу на встроенном в yii2 фреймворке, но своей фигни он не навязывает и реализован скорее для соблюдения патерна MVC. И зачем некоторые пытаются добавить туда еще и smarty мне абсолютно не понятно.
 
Напиши это на смарти:

test.php
PHP:
# Все функции будут работать даже на самых ранних версиях PHP 4 ;)
$data = [
  'case1' => ['title' => 'one'],
  'case2' => ['title' => 'two'],
  'case3' => ['title' => 'three'],
];

$tpl = '';
foreach ($data as $case) {
  $tpl .= include('row.php');
}

echo $tpl;

row.php
PHP:
<?
return '<h1>' . $case['title'] . '</h1>';

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

PS не скажу что сам я не использую шаблонизаторы, сижу на встроенном в yii2 фреймворке, но своей фигни он не навязывает и реализован скорее для соблюдения патерна MVC. И зачем некоторые пытаются добавить туда еще и smarty мне абсолютно не понятно.
В принципе я согласен, но я сторонник отделения логики от фронта... и такие манипуляции я провожу в php... к foreach не относится.
Не люблю я мешать фронт и бек. Смарти по сути фронт... или полуфронт точно ))
Как максимум у меня там js css html foreach и иногда вызовы типа {Tools::getCustomInfo()}
Tools это класс доступный везде... Всё остальное надо стараться и нужно держать в php..
Но это моё мнение. Все извращаются как мы поняли по своему :D:ass::sex::work::pop::friends:
 
В принципе я согласен, но я сторонник отделения логики от фронта...
Код после объявления $data можно вынести в отдельный файл - вот тебе и отделение ;)

Но это моё мнение. Все извращаются как мы поняли по своему :D:ass::sex::work::pop::friends:
Это точно!
927_v4.png

Для просмотра ссылки Войди или Зарегистрируйся
 
Ребят, Вы реально потроллить друг друга решили?
"Тролль должен быть жирным, чтобы даже после смерти троллить тех, кто будет его нести"?

ТС, ты хоть понимаешь сколько кода стоит за
$smarty->assign('list', $list);
????

У тебя движок что? Из 2-3 страничек состоит?

Ты хоть понимаешь, что заменить эту 1 строку придётся кодом на 2-3 монитора?

Тебе движок по сути с нуля писать... Ибо шаблонизатор - 1/3 от твоего движка...

Да даже из названия понятен уровень знаний ТС, которого явно не достаточно, чтобы провести данную замену...
 
Не нравится смарти - учите твиг.
 
Не нравится смарти - учите твиг.
Не нравится смарти - не учите никакой шаблонизатор.
@latteo все верно сказал:
Зачем его придумали я так и не понял, верстальщики его учить не хотят, программист на php, даже начинающий успешно применит стандартные циклы и if, else.
 
Не нравится смарти - не учите никакой шаблонизатор.
@latteo все верно сказал:
Ну, раз @latteo не понравилось, то верно, нафига придумали шаблонизаторы-то? :) Вы прикалываетесь там что-ли, или ещё с выходных не отошли?
 
Не нравится смарти - учите твиг.
Тот же ответ что и любителям смарти: Для просмотра ссылки Войди или Зарегистрируйся, который перекроет 30-50% реально используемого функционала шаблонизатора, перепиши его на твиг и обоснуй чем это лучше нативных функций и возможностей языка.
 
Назад
Сверху