Стоит ли юзать Smarty (желательно с комментами)
Как думаете разумно ли при написании своей CMS использовать Smarty, или логичней писать всё самому. да, очень нужная штука | [ 4 ] | ![]() ![]() ![]() |
нет, без него проще | [ 11 ] | ![]() ![]() ![]() |
без разницы | [ 6 ] | ![]() ![]() ![]() |
а что это? | [ 5 ] | ![]() ![]() ![]() |
Всего голосов: 57 ( 1 ) |
Спустя 11 минут, 25 секунд (5.10.2011 - 11:30) Zerstoren написал(а):
Если вы хотите явно разделить логику шаблонов - то его использовать нужно.
Если в шаблонах должны использоваться тяжелые как для смарти действия, то от него стоит отказаться.
Если в шаблонах должны использоваться тяжелые как для смарти действия, то от него стоит отказаться.
Спустя 4 минуты, 57 секунд (5.10.2011 - 11:35) caballero написал(а):
Использовать смарти лишний геморрой. PHP уже сам по себе шаблонизатор - это его природа. Вынесите логику в классы или просто в инклуды и получите то же самое что со смарти только не надо заниматся перекладываением переменных и написанием логики отображения на каком то псевдоязыке
Спустя 8 минут, 23 секунды (5.10.2011 - 11:43) McLotos написал(а):
Цитата |
только не надо заниматся перекладываением переменных и написанием логики отображения на каком то псевдоязыке |
ну вот, сразу всё обломал. я только из-за этого хотел перейти на смарти, вместо того чтобы писать всю эту логику самому, а для чего это, я уже ответил на твой пост в этой теме
просто очень хотелось бы минимизировать риск ошибки дизайнера, мне почему-то кажется что даже если я оставлю всё как есть, т.е. дизайнер вставляет в нужных местах что-то типа <?php=$menu?>, в этом тоже присутствует какой-то процент риска, ведь {menu} намного безопасней, т.е. дизайнер не сможет ничего написать не так.
Спустя 16 минут, 19 секунд (5.10.2011 - 12:00) caballero написал(а):
Цитата |
ведь {menu} намного безопасней, т.е. дизайнер не сможет ничего написать не так. |
чем безопасней? У вас уже данные подготовлены это только вывод. Никаким каком дизайнер уже не повлияет. а если что затрет то эту конкретную переменную в этом месте. Не стане же он присвоение делать. А если ошибка в синтаксисе - наприме скобку затрет то ьона и так вылезет что на php что на смарти.
Это как в модном сейчас MVC - теоретически отделяем логику от дизайна а практически фреймворки размером в мегабайты в которых черт ногу сломит.
Спустя 1 час, 13 минут, 46 секунд (5.10.2011 - 13:14) ApuktaChehov написал(а):
Ну, смарти не дураки писали и говорить, что использование смарти тормозит систему - глупо.
Давайте разберемся.
Смарти как таковой - это псевдоязык, который помогает отделить логику от представления. Т.е. в нашем случае облегчить жизнь верстальщикам и усложнить ее программистам.
Смарти принимает на вход шаблон где используется псевдоязык смарти. Далее он как интерпретатор, преобразует шаблон и выполняет его. Да, происходит это с помощью регулярных выражения, да они медленные, да в сложных шаблонах все очень медленно работает.
Но это лишь до того момента, пока мы все не включим мозг.
Сейчас я расскажу как профессионально использовать смарти и при этом не заботиться о скорости работы.
И так, нам надо, что бы программисты не думал о HTML, а дизайнеры и верстальщики о PHP. Использовать смарти в реальном времени работы скрипта - затратно, а значит нам нужно использовать его пассивно.
Тут в дело вступает такая волшебная штука как кэширование. Чем же оно тут полезно?
Вся прелесть в том, что шаблон обработанный самрти, не выдается в поток юзеру, а записывается в специальный файл(кэш). А после, этот самый файл подключается инклудом в php. Таким образом смарти работает только один единственный раз, когда верстальщику нужно обновить шаблон. А все остальное время все шаблоны(кэш) подключаются инклудом.
При этом мы имеем:
1) Шаблоны с синтаксисом смарти, которые любой верстальщик в любой момент может поправить.
2) Имеем высокую скорость обработки конечных шаблонов, так как в результате, php работает с нативными шаблонами.
3) При этом дизы и вёрсты работаю на своей кухне, а программеры на своей. Все довольны и счастливы.
P.S. Это один вариант использования смарти. И кстати, не обязательно смарти, можно юзать любой шаблонизатор.
Давайте разберемся.
Смарти как таковой - это псевдоязык, который помогает отделить логику от представления. Т.е. в нашем случае облегчить жизнь верстальщикам и усложнить ее программистам.

Смарти принимает на вход шаблон где используется псевдоязык смарти. Далее он как интерпретатор, преобразует шаблон и выполняет его. Да, происходит это с помощью регулярных выражения, да они медленные, да в сложных шаблонах все очень медленно работает.
Но это лишь до того момента, пока мы все не включим мозг.
Сейчас я расскажу как профессионально использовать смарти и при этом не заботиться о скорости работы.
И так, нам надо, что бы программисты не думал о HTML, а дизайнеры и верстальщики о PHP. Использовать смарти в реальном времени работы скрипта - затратно, а значит нам нужно использовать его пассивно.
Тут в дело вступает такая волшебная штука как кэширование. Чем же оно тут полезно?
Вся прелесть в том, что шаблон обработанный самрти, не выдается в поток юзеру, а записывается в специальный файл(кэш). А после, этот самый файл подключается инклудом в php. Таким образом смарти работает только один единственный раз, когда верстальщику нужно обновить шаблон. А все остальное время все шаблоны(кэш) подключаются инклудом.
При этом мы имеем:
1) Шаблоны с синтаксисом смарти, которые любой верстальщик в любой момент может поправить.
2) Имеем высокую скорость обработки конечных шаблонов, так как в результате, php работает с нативными шаблонами.
3) При этом дизы и вёрсты работаю на своей кухне, а программеры на своей. Все довольны и счастливы.
P.S. Это один вариант использования смарти. И кстати, не обязательно смарти, можно юзать любой шаблонизатор.
Спустя 43 секунды (5.10.2011 - 13:14) vasa_c написал(а):
1. Шаблонизаторы использовать нужно.
2. Smarty использовать не нужно.
Я закончил. Холиварте дальше.
2. Smarty использовать не нужно.
Я закончил. Холиварте дальше.
Спустя 26 минут, 59 секунд (5.10.2011 - 13:41) McLotos написал(а):
Цитата |
1. Шаблонизаторы использовать нужно. 2. Smarty использовать не нужно. |
Коротко и ясно =)
Спустя 1 час, 28 минут, 11 секунд (5.10.2011 - 15:09) kristall написал(а):
Уже говорил, повторю. Smarty надо обязательно попробовать, чтобы понять, что значит "представление" и как велико искушение напихать в него "контроллера". А дальше применять его или нет вопрос вкуса, привычки или принятого стандарта.
Спустя 14 минут, 4 секунды (5.10.2011 - 15:24) caballero написал(а):
Цитата |
Смарти как таковой - это псевдоязык, который помогает отделить логику от представления. Т.е. в нашем случае облегчить жизнь верстальщикам и усложнить ее программистам. |
А в чем смысл усложнять одним и упрощать другим?
Цитата |
что бы программисты не думал о HTML, а дизайнеры и верстальщики о PHP. |
Не получится дизайнерам вместо PHP придется думать о смарти
Цитата |
Шаблоны с синтаксисом смарти, которые любой верстальщик в любой момент может поправить |
а что мешает поправить с синтаксисом PHP? уверен что все без исключения верстальшики как минимум знакомы с синтаксисом PHP.
в отличие от псевдоязыков
Цитата |
И кстати, не обязательно смарти, можно юзать любой шаблонизатор |
Достаточно шаблонизатора под именем PHP
Цитата |
При этом дизы и вёрсты работаю на своей кухне, а программеры на своей. Все довольны и счастливы |
Это в теории - практика показывает обратное как только сайт становится чуть сложнее визитки.
Цитата |
Уже говорил, повторю. Smarty надо обязательно попробовать, чтобы понять, что значит "представление" и как велико искушение напихать в него "контроллера". А дальше применять его или нет вопрос вкуса, привычки или принятого стандарта. |
какая связь смарти с контроллерами и прочим?
Цитата |
1. Шаблонизаторы использовать нужно. 2. Smarty использовать не нужно. Я закончил. Холиварте дальше. |
PHP и есть шаблонизатор.
Спустя 18 минут, 10 секунд (5.10.2011 - 15:42) kristall написал(а):
Цитата |
какая связь смарти с контроллерами и прочим? |
В том и фишка, что никакой. То есть на смарти при всем желании невозможно писать контроллеры, не говоря уже о моделях. Чистое представление. В этом и заключается его педагогический эффект.
Спустя 47 минут, 46 секунд (5.10.2011 - 16:29) ApuktaChehov написал(а):
Цитата |
А в чем смысл усложнять одним и упрощать другим? |
Вы меня спрашиваете? Я не знаю, спросите разработчиков смарти.
Я его сам не использую. Но решил рассказать автору, как его можно использовать.
Цитата |
Не получится дизайнерам вместо PHP придется думать о смарти |
Смарти гораздо проще PHP, по этому и освоить его легче.
Цитата |
а что мешает поправить с синтаксисом PHP? уверен что все без исключения верстальшики как минимум знакомы с синтаксисом PHP. в отличие от псевдоязыков |
Не знаю. Но ведь смарти используется же

Цитата |
Это в теории - практика показывает обратное как только сайт становится чуть сложнее визитки. |
Возможно.
P.S. Вы ведете себя как всезнайка. Мне это неприятно, по этому прошу, не комментируйте меня - ответа вы не дождетесь.
Спустя 37 секунд (5.10.2011 - 16:30) Invis1ble написал(а):
Цитата |
Шаблоны с синтаксисом смарти, которые любой верстальщик в любой момент может поправить. |
с таким же успехом он может поправить шаблон со вставками на php
Спустя 2 минуты (5.10.2011 - 16:32) ApuktaChehov написал(а):
Invis1ble - да может он, я не утверждаю обратного! Чего вы ко мне прилепились, я рассказал, о том как смарти используется. Я не говорил, что те же самое задачи ничем, кроме смарти решить нельзя!
Спустя 4 минуты, 10 секунд (5.10.2011 - 16:36) Invis1ble написал(а):
ApuktaChehov
да ладно, я к тебе не цеплялся
все нормально, ничего личного 
просто мое имхо - зачем версталям учить синтаксис шаблонизаторов (кол-во которых явно не 1), когда проще запомнить основы синтаксиса самого пыха... ну это так, мысли вслух
да ладно, я к тебе не цеплялся


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

Спустя 3 минуты, 50 секунд (5.10.2011 - 16:40) ApuktaChehov написал(а):
Invis1ble - я тоже так думаю.
Спустя 8 минут, 21 секунда (5.10.2011 - 16:48) caballero написал(а):
Цитата |
Смарти гораздо проще PHP, по этому и освоить его легче. |
На том уровне синтаксиса что требуется для управления выводом HTML без разницы.
Цитата |
Но ведь смарти используется же По видимому ни все верстальщики знаю PHP. |
как раз наоборот любой верстальщик сделавший несколько сайтов
сталкивался с PHP.
смарти используют далеко не все.
Цитата |
P.S. Вы ведете себя как всезнайка. Мне это неприятно, по этому прошу, не комментируйте меня - ответа вы не дождетесь. |
Ваши трудности что вам неприятно когда оказывается что вы пишете чушь.
Важно что прочитают другие - особенно новички которые только и норовят заюзать какую то модную фишку вместо выучить PHP как положено.
Спустя 3 часа, 7 минут, 31 секунда (5.10.2011 - 19:56) ApuktaChehov написал(а):
Любой инструмент, будь это смарти или еще что-либо, создан для решения определенных задач. Если вы не сталкивались с подобными задачами, если вы все еще не понимаете этого факта - как части мира программирования, и как результата программирования - софта, для чего тогда судить о таких высоких для вас, вещах?
И не стоит грубить, это цены вам не прибавит.
Администрация, накажите грубияна!
P.S. даже опрос против вас
И не стоит грубить, это цены вам не прибавит.
Администрация, накажите грубияна!
P.S. даже опрос против вас

Спустя 21 минута, 41 секунда (5.10.2011 - 20:18) Invis1ble написал(а):
Цитата |
Администрация, накажите грубияна! |
Я слежу за высказываниями, на мой взгляд ничего критичного в комментах не звучало
Спустя 8 минут, 20 секунд (5.10.2011 - 20:26) ApuktaChehov написал(а):
Invis1ble - значит это мое самолюбие меня обманывает

Спустя 1 час, 42 минуты, 10 секунд (5.10.2011 - 22:08) killer8080 написал(а):
ApuktaChehov
научитесь воспринимать конструктивную критику.
Переводить спор на личности - дурной тон.
научитесь воспринимать конструктивную критику.
Переводить спор на личности - дурной тон.

Спустя 30 минут, 53 секунды (5.10.2011 - 22:39) kirik написал(а):
Не понимаю зачем менять шило на мыло (чистый php на смарти). TAL (phptal) удобнее как для верстальщика (нет тупых {вставок}), так и для программиста.
Спустя 8 минут, 22 секунды (5.10.2011 - 22:47) jetistyum написал(а):
Был опыт работы на смарти, теперь перешел на чистый PHP .. думаю что не имеет смысла использовать смарти, это лишний уровень абстракции. Особых плюсов я не нахожу... Группа дизайнеров которые знают только смарти, но не знают php - "нет, сынок, это фантастика"... логика в шаблонах минимальная остается и со смарти, и с php, синтаксис смарти ничем не проще синтаксиса php .. Для самообразования, можно попробовать...
Спустя 8 часов, 9 минут, 59 секунд (6.10.2011 - 06:57) McLotos написал(а):
Цитата |
Смарти гораздо проще PHP, по этому и освоить его легче. |
ApuktaChehov
Я бы так не сказал, лично мне после чистого php Smarty кажется "пропущенным через мясорубку" =)
caballero
Вам, как ярому фанату "чистого пыха", могу сказать только одно. Использование конструкции типа
echo "<table>";
echo "$text";
echo "</table>";
Не совсем правильно. Лично я считаю нельзя запихивать в php код html тэги, и у меня никогда не возникало такой необходимости, а шаблоны для этого и нужны чтобы разделить страницу на составляющие, хотябы для того чтобы она просто смотрелась не как "текст в блокноте".
Поэтому я никогда не пишу в php то что содержит выводимый текст или html тэги.
Ведь нет же ничего сложного в том чтобы написать одну функцию, которая будет подтягивать шаблон по ситуации, или пару-тройку инклудов сделать.
Зато я на 100% уверен, что дизайнер в шаблоне не найдёт ни одной строчки php кода, кроме коротеньких <?=$Menu?> или <?=$News?>
Или я Вас не совсем понял, что Вы подрозумевали под Ващей любимой фразо "PHP и есть шаблонизатор".
Извините, если кого-то чем-то задел.
Спустя 1 час, 9 минут, 10 секунд (6.10.2011 - 08:07) Michael написал(а):
Цитата (McLotos @ 6.10.2011 - 05:57) |
echo "<table>"; echo "$text"; echo "</table>"; |
А так и не делают.
Делают:
<table>
<?php print $text; ?>
</table>
- php-вставка выводит данные в шаблон. html доступен верстальщику, а не в коде зашит. Плюс заметь что теги и код также отступом отбиваются.
Спустя 36 минут, 21 секунда (6.10.2011 - 08:43) McLotos написал(а):
Цитата |
А так и не делают. |
Поверь мне, я видел такие коды =)
Спустя 22 минуты, 20 секунд (6.10.2011 - 09:05) ApuktaChehov написал(а):
Да, caballero не грубил мне, да я это со злости написал, да я уже признал эту ошибку(см. выше), да я согласен с caballero, да я не использую смарти, да смарти - говно, да я приношу извинения caballero.
Еще есть ко мне вопросы или комментарии?
Или быть можем мы спросим, получил ли автор темы ответ на свой вопрос?
Еще есть ко мне вопросы или комментарии?
Или быть можем мы спросим, получил ли автор темы ответ на свой вопрос?
Спустя 4 минуты, 27 секунд (6.10.2011 - 09:10) Семён написал(а):
Smarty как и XAJAX нужно было использовать пару лет назад.
Сейчас нативный шаблон рулит xD
Сейчас нативный шаблон рулит xD
Спустя 32 минуты, 51 секунда (6.10.2011 - 09:43) McLotos написал(а):
Из-за столь горячих дискуссий, я уже и забыл про свой вопрос =)))
А вообще пришёл к выводу чток чертям этот smarty нужно писать лучше всё самому. Т.е. без использования чего-либо ещё. Т.е. ну их нафиг все эти framework и тому подобные вещи.
А вообще пришёл к выводу что
Спустя 1 час, 24 минуты, 53 секунды (6.10.2011 - 11:07) Michael написал(а):
Цитата (McLotos @ 6.10.2011 - 07:43) | ||
Поверь мне, я видел такие коды =) |
С охотностью верю. Тут все видели такие коды. И делали вначале. Но это же не обязательная характеристика нативного шаблона.
Цитата (ApuktaChehov) |
Еще есть ко мне вопросы или комментарии? |
Есть вопрос.

Цитата |
Вся прелесть в том, что шаблон обработанный самрти, не выдается в поток юзеру, а записывается в специальный файл(кэш). А после, этот самый файл подключается инклудом в php. Таким образом смарти работает только один единственный раз, когда верстальщику нужно обновить шаблон. А все остальное время все шаблоны(кэш) подключаются инклудом. |
Что это за шаблон - с php вставками? А как данные туда передаются? Если инклудом подключать - значит уже должны быть в шаблоне. Тут неясно.
Спустя 8 минут, 28 секунд (6.10.2011 - 11:16) ApuktaChehov написал(а):
Michael - я сам со смарти крайне мало работал и описал именно тот принцип с которым я знаком.
Нет, к кешированию смарти это не имеет отношение, но подозреваю, что они похожи.
Фактически эти самые кэши это обычный нативный синтаксис. Вот только вместо того, что бы самими разработчиками этот нативный синтаксис делать, эту работу переложили на смарти, а уже сам смарти, и генерировал из своего кода, шаблоны(кэш) с нативным синтаксисом.
Ну это упрощенно. Так как, насколько я помню, смарти там еще управлял самим отображением. Т.е. какой блок кода когда выводить и где он выводиться.
А по поводу того, как данные передаются, я уже не помню. Но почему то мне кажется, что данные формируются в виде массива в контроллере, после чего управление передается представлению и, собственно, инклудится этот самый кэш, в котором переменные ссылаются на массив с данными.
Нет, к кешированию смарти это не имеет отношение, но подозреваю, что они похожи.
Фактически эти самые кэши это обычный нативный синтаксис. Вот только вместо того, что бы самими разработчиками этот нативный синтаксис делать, эту работу переложили на смарти, а уже сам смарти, и генерировал из своего кода, шаблоны(кэш) с нативным синтаксисом.
Ну это упрощенно. Так как, насколько я помню, смарти там еще управлял самим отображением. Т.е. какой блок кода когда выводить и где он выводиться.
А по поводу того, как данные передаются, я уже не помню. Но почему то мне кажется, что данные формируются в виде массива в контроллере, после чего управление передается представлению и, собственно, инклудится этот самый кэш, в котором переменные ссылаются на массив с данными.
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки