[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Холивар про шаблонизатор.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8
twin
BaNru
Во! Вот это дельное замечание. Про вложенные блоки я как то не особо подумал. И хотя все же сделал для спортивного интереса, все работает, но.
Немного усложнился синтаксис, что по моей концепции впринципе неприемлимо. А самое главное - поплыл шаблон.

Однако не все так плохо))) Нужно просто совместить два подхода в один. Разбор шаблона на блоки оставить так, по HTML комментариям, а переменные вставлять нативом. Ну и соответственно остается возможность вставлять всякие ифы, коль на то появится желание. И шаблон не плывет, так как <?php ... ?> браузер воспринимает как тег и не отображает, если открыть по физическому пути.

Плевать на третий пункт, я собственно я с этого начинал, да увлекся. Спасибо, топик пропал не зря. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
BaNru
Цитата
Во! Вот это дельное заечание. Про вложенные блоки я как то не особо подумал.

Блин, twin, я тебе об этом писал ещё на первой странице. Ну слава макаронному монстру донес информацию!!!

Цитата
Нужно просто совместить два подхода в один

Я тебе привел тут только пару примеров. А таких непредсказуемых ситуаций может быть очень много. Ну нельзя всё предусмотреть. Поэтому связывать руки верстальщику - неправильно! Хочешь внедрять шаблонизатор какой-то свой - да на здоровье, но не стоит ограничивать свободу. Шаблонизатор должен упрощать жизнь и брать на себя какие-то основные функции, а извращения оставь верстальщику (ну или кодеру в шаблоне).
chee
twin твой подход очень давно был в моде, и он благополучно умер, так как это не удобно.
Я например кастомизирую SugarCRM под требования всяких организаций. Мне приходится встречаться с таким шаблонизатором как XTemplate, в нем используется идеология блоков и отсутствия логики. И знаешь что? В SugarCRM этот шаблонизатор является legacy-библиотекой, то есть на нем больше не разрабатывают новых модулей, и практически вся система переведена на Smarty. Я не исключаю, что подобная ситуация продиктована архитектурой SugarCRM, но все таки это прецидент. Так же затрону шаблонизатор handlebars.js, он тоже практикует подобное, но в мешьшей степени, Что-то делать на этом шаблонизаторе то еще извращение.

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

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

wink.gif

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
philya
Мельком почитал, вроде все, что вы хотите, есть в XTemplate
twin
chee
Цитата
Я не исключаю, что подобная ситуация продиктована архитектурой SugarCRM, но все таки это прецидент
И правильно, что не исключаешь. Ибо программирование, это не юриспруденция, тут нельзя опираться на прецеденты. Мало ли кто там какого гуся для себя вывел. Интернет пестрит выводами, что Смарти безнадежно устарела, это тоже прецеденты. Мне далеко за примером ходить не нужно - наша команда отказалась от смарти в пользу натива, на это тоже были причины. Не пытаться искать новые пути - это застой и регрес.

philya
Цитата
Мельком почитал, вроде все, что вы хотите, есть в XTemplate
Вот. Я же догадывался, что столь очевидный способ не должен был остаться незамеченным. smile.gif

Посмотрел на XTemplate, да. Принцип очень похож. Нужно поковырять на досуге. Спасибо ребята за наводку. Правда у меня немного не та идея, я хоче прямо в шаблоне прятать или открывать блоки, чтобы шаблон можно было открыть напрямую. И еще у меня навязчивая идея обойтись совсем без синтаксиса. А XTemplate маркирует вложенные блоки.

Кроме того, меня убедили, что нативный синтаксис рулит. Впрочем я и сам обеими руками был за него. А XTemplate практикует то, с чего я тут начал. Тоесть вставку переменных с помощью псевдотегов {...}.

Но в целом очень похоже, спасиб. Есть что посмотреть.

Цитата
Короче забудь про это, твой велосипед безнадежно устарел, да и по сравнению с устаревшими конкурентами, тоже выглядид не ахти.
Новое - хорошо забытое старое (с) smile.gif
Всё зависит от задач. Для моих задач такой подход более чем оправдан.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
linker
Цитата
1. Шаблонизатор служит для разделения бизнесс-логики и логики представления.
Шаблонизатор не разделяет бизнес-логику от логики-представления.
Цитата
2. Шаблонизатор должен упростить задачу верстальщику, оградив его от PHP.
Шаблонизатор ограждает версталя от PHP, но при этому навязывает ему новый язык программирования - язык шаблонизатора, который при этом жёстко завязан на PHP, как-то названия переменных, структур и т.п.

Фигня это все шаблонизаторы.

_____________
Gear Framework
Gear Framework на Github
twin
Всё верно. За исключением малого. Обычно любые холивары про шаблонизаторы делят аудиторию на две части. Первая утверждает, что PHP изначально планировался как шаблонизатор, это и есть его суть. А значит вполне достаточно нативного синтаксиса. Другие говорят, что с тех пор утекло много воды, что PHP теперь полноценный язык программирования и использовать его как шаблонизатор - смертный грех. А значит срочно нужно снабдить его еще одним шаблонизатором.

По сути правы обе стороны, от того и нескончаемые холивары. А всё дело в том, что не нужно бросаться в крайности. Возможности PHP, как шаблонизатора, никуда не делись из-за того, что в нем теперь реализовано всё необходимое, вплоть до доктрины ООП.

Просто нужно смотреть на PHP, как на два в одном. С одной стороны это шаблонизатор. Ибо позволяет вставить результат вычисления программы непосредственно в HTML разметку. С другой стороны - это язык программирования, который может самостоятельно произвести эти вычисления.

Ведь по сути дела можно на основе всего пары функций можно сделать, как говорится, приложение любой сложности.

Для этого нужно взять любой другой подходящий язык (допустим perl), написать на нем все что нужно, запустить из CGI-BIN каким-нибудь exec() и вставить в HTML с помощью echo или print(). Всё. Правы те, кто говорит, что PHP - это шаблонизатор.

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

Поборники классических шаблонизаторов пошли еще дальше. Заменив рассово верные вставки <?php ... ?> на всяческие {{...}} и иже с ними. И напихав в разметку своей, суррогатной логики. Окончательно извратив идею и запутав всех и вся основательно. Термин даже придумали - "логика отображения". Не понимая абсурдности самого определения. Это похоже на "громкость газеты".

Слабые попытки оправданий, мол чего там изучать, в смарти к примеру, там вего то ничего - не прокатывают. Ибо не в изучении дело, а в извращении самой идеи.

Напомню, идея PHP (из-за которой он и стал популярным), это внедрить результат исполняемого кода в HTML разметку. Не портя последней.

Я просто хотел разобраться, возможно ли использовать PHP и как ЯП и как шаблонизатор одновременно. Не портя идею. И вроде пока получается. Я понимаю, что это никому не нужно, но просто зацепило. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
linker
Ну я же использую и мне нормально. Только я хочу поправить, сторонники noPHP-шаблонизаторов руководствуется исключительно одним доводом, у них глаза болят от классических <?php ?>

_____________
Gear Framework
Gear Framework на Github
inpost
Ну людям тошнит от ПХП. А это дополнительная строчка в резюме, я умею пользоваться "несколькими языками программирования", ПХП и СМАРТИ. laugh.gif laugh.gif laugh.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
paul85
Цитата (linker @ 28.05.2014 - 16:11)
сторонники noPHP-шаблонизаторов руководствуется исключительно одним доводом

linker, адекватные сторонники шаблонизатора руководствуются наследованием шаблонов и компиляцией. Потому, что здесь выбор простой: либо не использовать наследование, либо заниматься собственной реализацией. Во втором случае рано или поздно получим смарти или твиг, только с нативным синтаксисом. Убить огромное количество времени и наворотить багов, вместо того, чтобы просто выучить 3-4 элементарных конструкции. Что целесообразнее? =)

Здесь ведь ни у кого не вызывает сомнений необходимость в шаблонизаторе, как таковом?

Но если мы абстрагируемся, как просил twin, от наследования шаблонов, то да, смысла в смарти нет абсолютно никакого. Разве что призрачная надежда упростить жизнь верстальщикам, что сомнительно. Ну и да, код на смарти выглядит красивее, но это уж и вовсе субъективщина чистой воды. И уж тем более ради этого нет смысла изучать.

Цитата (inpost @ 28.05.2014 - 16:14)
я умею пользоваться "несколькими языками программирования"

Это еще ладно... Люди пишут, что знают ЯП HTML. Вот это хит хитов!
killer8080
Цитата (paul85 @ 28.05.2014 - 18:05)
linker, адекватные сторонники шаблонизатора руководствуются наследованием шаблонов и компиляцией

каким боком "компиляцию" можно причислять к достоинствам шаблонизатора? Это скорее их недостаток wink.gif
да и наследование реализуется элементарно без искусственного синтаксиса, в том же simfony2
twin
paul85
Блин. Да ребят, давайте учиться слышать друг друга. Я не писал шаблонизатор. Пока не писал. Я просто спросил, почему я не видел такой схемы разбора шаблонов. Оказалось есть очень похожая, оооочень. За это я благодарен ребятам. Всего же не увидишь, особенно когда пользуешься наработанной схемой.

Какое нафиг наследование. Какая компиляция. Почитай первый пост в топике, там есть оговорка - не затрагивать эти темы.

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

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

Вопрос в том, что есть альтернативный подход. И пусть народ плачет, мол ты дурак, все давно придумано. Никто не запретит думать нестандартно.

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

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
linker
paul85
Наследование реализовывается и без всяких сторонник шаблонизаторов. Компиляция - это не преимущество, а жирный минус. И в чём проблема использовать уже известные 3-4 конструкции стандартного PHP, вместо того, чтобы учить новое, но при том, что это новое абсолютно тоже самое, что и старый добрый PHP, только вместо <?php ?> используют всякие {{}}? В чём гениальный смысл шаблонизаторов, я не пойму.

_____________
Gear Framework
Gear Framework на Github
chee
twin
Смысл в том что ты мыслишь нестандартно только для себя и для твоего круга общения, а вот с нами пообщался и узнал, что в принципе то, идеи такие у людей имеются, и они уже реализованы. Так что вот.

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

Нравится

1. Отсутствие логики, невозможно из шаблона произвести атаку на серверную стороны.

Не нравится

1. Менее производительный вариант по сравнению с компилируюмыми шаблонами и нативным php.
2. Необычные конструкции, идеология, нужно научиться мыслить блоками.
3. При вариативности отображения, начинается геморой. Например показать, что галочка в html выставлена или нет, поле задизейблено. В обычных шаблонизаторах это реализуется на уровне логики шаблонов, а в блочных это выносится на уровень View.
4. Очень сложная кодогенерация, если даже применять кодогенерацию, кода выйдет в итоге больше чем в других случаях.
5. Исходя из предыдущих пунктов, можно добавить и пункт, что проектировать систему с использованием такого инструмента, будет на много сложнее.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Цитата (chee @ 29.05.2014 - 12:41)
twin
Смысл в том что ты мыслишь нестандартно только для себя и для твоего круга общения, а вот с нами пообщался и узнал, что в принципе то, идеи такие у людей имеются, и они уже реализованы. Так что вот.



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

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.