Forum Webscript.Ru

Программирование => PHP => Тема начата: metton от 13 Февраля 2004, 19:33:41

Название: шаблоны vs php
Отправлено: metton от 13 Февраля 2004, 19:33:41
[OFF]RomikChef
Цитировать
Шаблонные движки - это совершенно бесполезные надстройки над пхп

Поясни, плз. Ты считаешь сами шаблонные движки бесполезными по сути или бесполезным их встраивание в ПХП?
[/OFF]
Название: шаблоны vs php
Отправлено: Меняздесьдавнонет от 13 Февраля 2004, 19:44:34
Ну, это лично мое мнение.
ПХП сам разрабатывался, в частности, и как шаблонный движок, вообще-то.
И делать шаблоны на шаблонах я считаю занятием не самым интересным.

а считаю не принципиально отличающимся от {TITLE}
а все вычисления и подготовку данных точно так же можно вынести в отдельный скрипт.

вот еще спектатор пишет на эту тему.
http://spectator.ru/technology/php/easy_templates
Название: шаблоны vs php
Отправлено: metton от 13 Февраля 2004, 21:42:36
2RomikChef
Понял. Но всё же, возвращаясь к тем же циклическим шаблонам. Их можно реализовать, как я понимаю, только циклом, который будет находится непосредственно в шаблоне, что, ИМХО, не есть хорошо и противоречит концепции отделения кода от дизайна.
Название: шаблоны vs php
Отправлено: Меняздесьдавнонет от 13 Февраля 2004, 22:18:46
metton
совершенно верно.
при классических шаблонах так все и обстоит. все "большие" движки, типа Смарти, пхптемплейтс - включают в себя управляющие структуры, дублирующие пхп. Получается интерпретатор, написаный на интерпретаторе.
А теперь вспомним, что шаблоны изначально придумывались... для дизайнера, чтобы ему не учить пхп... и вместо нормального языка дизайнер все равно учит псевдоязык.
при этом все равно бывают вещи, которые для того, чтобы сделать средствами интерпретатора, надо поиметь большой геморрой.

есть еще вариант, не отступать ни на шаг от канонов - для строки цикла сделать отдельный файл шаблона.
зашибись, правда?

В общем, именно из-за этой убогости, которая приносит гораздо больше вреда, чем пользы и связывает руки родновременно раздувая шаблонный движок, лично я и пользуюсь такими "шаблонами для бедных", просто разделяя пхп скрипт на две части - логика и вывод.
в выводе - простейшие операторы
Название: шаблоны vs php
Отправлено: metton от 13 Февраля 2004, 22:48:44
RomikChef
В принципе можно ведь реализовать шаблонизатор и без управляющих структур, а только с некоторыми метками. Причём таких меток может быть не более 2-3 типов.
Если я не прав, предложи задачу, которая не решаема с помощью такого подхода?

Но как же быть с языками, которые не встраиваются в html (тот же perl)? Встраивать их вручную? Имхо, неэффективно.
Хотя может все эти предположения из-за недостатка опыта :rollingeyes:
Название: шаблоны vs php
Отправлено: Меняздесьдавнонет от 13 Февраля 2004, 23:22:02
Цитировать
metton:
В принципе можно ведь реализовать шаблонизатор и без управляющих структур, а только с некоторыми метками.

весьма интересное утверждение.
не затруднит тебя набросать пару примеров?
ну, скажем, цикл мы можем такой штукой сделать.
а условный переход?
Название: шаблоны vs php
Отправлено: metton от 13 Февраля 2004, 23:35:05
RomikChef
у меня есть некоторые наработки на Perl, но пока не хотелось бы ими светить без надобности, так как они уже используются в некоторых проектах

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

условный переход... поясни


зы: и тогда уж перенеси плз эту ветку в алгоритмы и стандарты, так как в последнее время я уже в большей степени представитель perl-братии, чем php, а вопрос обсудить интересно
Название: шаблоны vs php
Отправлено: Меняздесьдавнонет от 13 Февраля 2004, 23:52:26

 
         
            ">
           
           

         
 
         
           
           
 
Название: шаблоны vs php
Отправлено: NeoNox от 14 Февраля 2004, 00:12:37
Цитировать
metton:
Но как же быть с языками, которые не встраиваются в html (тот же perl)?

Давай не будем делать таких далекоидущих выводов. Загляни, хотя бы, сюда:  http://perl.apache.org/embperl/. А потом посмотри на Т2Т и масон. Perl уже давно уже вырос из языка обработки текстов.
Извините что в разделе для РНР...
Название: шаблоны vs php
Отправлено: metton от 14 Февраля 2004, 00:35:03
NeoNox
Не совсем тебя понял. Я и не отрицаю, что Perl встраиваем в html, но я считаю что это просто ненужно. Или я опять неправ?

RomikChef
Так, ну во первых, самое простое: пишем в файле шаблоне ту часть кода, которая используется по умолчанию. Если же выполняется какое-либо условие (тот самый if; выполняется он в коде) подгружаем вместо шаблона по умолчанию другой. Только здесь для неосновных вариантов придётся "для строки цикла сделать отдельный файл шаблона", что тебе, видимо не очень-то нравится.
Название: шаблоны vs php
Отправлено: metton от 14 Февраля 2004, 00:38:37
RomikChef
Ещё можно эти несколько вариантов рядом в одном файле расположить, а В КОДЕ уже вибирать какой оставлять, на основе каких либо условий.
Название: шаблоны vs php
Отправлено: Меняздесьдавнонет от 14 Февраля 2004, 00:39:25
да, не очень.
при пришлось как-то править один проектик сделанный таким образом.
я проклял все на свете, колупаясь в полусотне этих мелких файликов.
Название: шаблоны vs php
Отправлено: Меняздесьдавнонет от 14 Февраля 2004, 00:44:54
metton
ну покажи - приведи пример?

при этом, заметь, логика шаблона сильно хромает.
одно на месте, другое - во внешнем файле
как отличить один блок от другого.
в общем, ради соблюдения кошерности шаблона, ты заработаешь себе геморрой.
Название: шаблоны vs php
Отправлено: metton от 14 Февраля 2004, 01:01:06
RomikChef




            ">
           
           

         


         
           
           



Комментарии - псевдокод, для наглядности.
При выполнении нужного условия оставляем и парсим соответствующий шаблон. Второй убираем. При некотором условии можно даже оба оставить.
Название: шаблоны vs php
Отправлено: metton от 14 Февраля 2004, 01:08:04
RomikChef
А насчёт множества маленьких файликов, конечно, с тобой согласен. Но когда есть, скажем, файлов 20 (по количеству разделов +/- ещё несколько) вполне реально эффективно управлять проектом (а именно, менять дизайн) даже человеку, знающему тольк html, при наличии документации (а так как имеем всего два-три вида конструкции, документация не должна сильно напрячь; в большльшей части, документация эта - описание какие шаблоны в каких файлах).
Название: шаблоны vs php
Отправлено: Меняздесьдавнонет от 14 Февраля 2004, 01:11:19
ну, разве что, так.
логика реализуется в скрипте, а в шаблоне - описывается комментариями.
хотя это все равно ущербный подход. реально, ты поимел в шаблоне таки управляющую структуру, но сделал вид, что ее нет.

но я никому своего мнения не навязываю. нехай будет так.
я, в общем, в вопросе шаблонов не экстремист
Название: шаблоны vs php
Отправлено: metton от 14 Февраля 2004, 01:21:10
2RomikChef
Цитировать
шаблоны изначально придумывались... для дизайнера
<...>
реально, ты поимел в шаблоне таки управляющую структуру, но сделал вид, что ее нет

Вот! Для дизайнера её как раз и нет, что и требовалось - минимум конструкций для простоты работы с шаблонами человеку несведущему ;)
Название: шаблоны vs php
Отправлено: NeoNox от 14 Февраля 2004, 11:30:03
Цитировать
metton:
Но как же быть с языками, которые не встраиваются в html (тот же perl)

Цитировать
metton:
Я и не отрицаю, что Perl встраиваем в html

Ты уж определись ;)
Цитировать
metton:
но я считаю что это просто ненужно

кому не нужно?? программисту, верстальщику или системному администратору? Речь идет о шаблонах и я дал тебе премер реализации их.
Название: шаблоны vs php
Отправлено: FreeSpace от 14 Февраля 2004, 14:55:26
Рома, а как ты относишься к XSLT?
Название: шаблоны vs php
Отправлено: metton от 14 Февраля 2004, 18:07:38
Цитировать
NeoNox:
Ты уж определись

Имелось ввиду что по умолчанию невстраиваемые.

Цитировать
кому не нужно?? программисту, верстальщику или системному администратору?

Дизайнеру это точно не нужно, программисту в итоге смешивание кода с дизайном выйдет боком, и поддерживать сайт будет имхо сложнее...
Название: шаблоны vs php
Отправлено: гоша от 16 Февраля 2004, 13:30:31
Цитировать
RomikChef:

         


пример, конечно, нечестный.

while($row=mysql_fetch_array($query))

где находится? в "коде" или в "шаблоне"?
что если на странице несколько одинаковых блоков (штук двадцать)?
что будет, если захочется поменять блоки местами, или вместо квери выводить массив?

итп.

хороший шаблон не "заменяет" пхп, а "расширяет".
Название: шаблоны vs php
Отправлено: Меняздесьдавнонет от 16 Февраля 2004, 13:45:34
в "коде"
вложенный форич
меняйте
Название: шаблоны vs php
Отправлено: гоша от 16 Февраля 2004, 14:14:41
спасибо за вашу ценную реплику.

хорошо, что для кого-то php остался "personal home page" языком.
но не все занимаются разработкой домашних страниц на php.
Название: шаблоны vs php
Отправлено: Меняздесьдавнонет от 16 Февраля 2004, 14:38:40
всегда пожалуйста.
на самом деле с 20-ю блоками по-моему решение ничем не отличается принципиально от одного. Если не затруднит - просветите меня не абстрактно.

и про поменять я не очень понял, если честно, в чем проблема.

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

А а личная домашняя страница - это да.
Я вообще считаю, что надо быть попроще.
что 20 одинаковых блоков в первую очередть затруднят восприятие, а уже во вторую - разработку.

но, если Вы не заметили, вопрос задавал не я, а другие люди.
И им будет весьма интересно, я уверен, выслушать Вашу точку зрения немного более развернуто, аргументированно и иллюстрированно.
Название: шаблоны vs php
Отправлено: metton от 16 Февраля 2004, 18:53:09
гоша
Цитировать
пример, конечно, нечестный

Странно, почему ты так думаешь? Нечестный по отношению к кому?


А реплику про несколько блоков вообще не понял. И что что несколько блоков?! Об этом и речь, что несколько на выбор.
И действительно ЧТО будет если поменять блоки местами?! :?

И кстати это был вопрос к кому? Тут обсуждаются как минимум две точки зрения на шаблоны.
Название: шаблоны vs php
Отправлено: гоша от 16 Февраля 2004, 19:17:49
> И действительно ЧТО будет если поменять блоки местами?!

Есть таблица.









список юзеров---рюшечкисписок статей---завитушечки


юзера и статьи выбираются из базы. Оба списка -- довольно сложный html.

Мы программируем как советует Роман:

page.php:

код-код-код
include "shablon.php";

утверждается, что while($row=mysql_fetch_array($query)) находится в "коде", а не в "шаблоне". Где в таком случае находится приведенная таблица? С рюшечками и завитушечками?
Название: шаблоны vs php
Отправлено: metton от 16 Февраля 2004, 19:40:23
гоша
У RomikChef-а "шаблон" практически == "код".

А так ВООБЩЕ ничего не понятно. Какие "рюшечки", какие "завитушечки"?
Название: шаблоны vs php
Отправлено: Меняздесьдавнонет от 16 Февраля 2004, 20:11:27
У RomikChef-а шаблон практически !== код!
У RomikChef-а шаблон точно такой же, как и у всех других.
В нем - только вывод.
в коде - заполнение переменных, в том числе - массивов, данными.

гоша прошу прощения, я перепутал этот тред с другим, где я давал пример развернутее.
И писал так, как будто этот пример здесь есть
вывод циклов делается через foreach
Название: шаблоны vs php
Отправлено: Меняздесьдавнонет от 16 Февраля 2004, 20:20:58


 
   
   
 
 
   
 
 
 
   
 
 
 
 
 
   
 
 


     
       
         
 
         
 
         
 
       
     

           
         

             ">
             "написать
             

             
         

   
  


     


     
     


   
 

     
     
      ">удалить
      ">редактировать
      ">ответить
     

   

Название: шаблоны vs php
Отправлено: metton от 16 Февраля 2004, 23:18:10
RomikChef
Ну как, если ты в шаблоне используешь код, это код. Или я не прав?
Название: шаблоны vs php
Отправлено: Меняздесьдавнонет от 16 Февраля 2004, 23:29:05
прав-прав.
еще мне не хватало тут терминологических споров
Название: шаблоны vs php
Отправлено: metton от 16 Февраля 2004, 23:36:30
гоша
Так что ты всё-таки имел ввиду (см. мой предыдущий пост к тебе)?
Название: шаблоны vs php
Отправлено: FreeSpace от 17 Февраля 2004, 19:51:19
Хм, меня один раз проигнорировали, но я позволю себе ещё раз вмешаться в дискуссию.
Кто-нибудь здесь вообще работал с XSLT?
Название: шаблоны vs php
Отправлено: Макс от 17 Февраля 2004, 20:30:51
FreeSpace
я просто экспериментировал c XSLT.
Понравилось, но за неимением опыта XSL-верстки очень долго пришлось верстать XSLT-шаблоны.
Я решил отказаться от использования XSLT до выхода стаблильного релиза PHP5.

Понравилось именно то, что логикой вывода занимается XSLT а логикой обработки данных PHP. Можно менять вывод коренным образом не меняя при этом код ПХП.
Название: шаблоны vs php
Отправлено: FreeSpace от 17 Февраля 2004, 22:22:20
Макс
Я вот только-только начал осваивать работу с XML и XSL-шаблонами.
Можно сказать, тоже экспериментирую.
На самом деле, всё оказалось проще, чем я себе представлял.
А вопрос я вот какой хотел задать - оправданно ли использование XSLT для малых проектов? Как я могу судить на данный момент, в этой технологии нету ничего сложного или громоздкого. Разве что формирование XML из собственных источников данных, но это уже отдельная тема...
Название: шаблоны vs php
Отправлено: Макс от 17 Февраля 2004, 22:41:29
я не вижу особого отличия между большими и маленькими проектми.
Разве что в больших более строгие требования к производительности. И вот именно в них использование XML/XSLT вызовет дополнительные трудности (там серверное кеширование или генерирование статики делать прийдется).
Название: шаблоны vs php
Отправлено: гоша от 17 Февраля 2004, 23:43:57
XSL -- это НЕ язык разметки (типа html), а язык программирования, и (в нетривиальных случаях) довольно сложный.

Какой смысл менять шило на мыло, и вместо одного языка (php) использовать другой (xsl).
Название: шаблоны vs php
Отправлено: Орлис от 18 Февраля 2004, 16:26:30
XSLT декларативный язык, а не процедурный, что-то типа LISP для XML.

Т.е. его сложность совсем в ином смысле, чем в PHP.
Название: шаблоны vs php
Отправлено: KBA-KBA от 19 Февраля 2004, 03:05:24
я работал  с XML и XSLT структурами, по сравнению с шаблонами и "просто ПХП" не понравилась его медлительность...
Т.е. использование связки
 DB => PHP => XML + XSLT => PHP = HTML
очень медлительно, а т.к. XML + XSLT есть самодостаточная структура то можно сократить до
DB => XML + XSL => HTML ( с помощью спец. обарабочиков в виде модулей к Апач или CGI програм) (приведены примеры)
XML - мощный инструмент т.к. его можно оброботать почти в любуюформу, фактически это стал второй стандарт хранения информации (первый - Базы Данных) и не использовать его очень глупо, ОСОБЕННО для маленьких проетов, где использование БД не целесообразно.
XSLT - очень гибкий язык, и если подходить с умом решает 99,9% задач требуемых для оброботки КсМЛ
Это все я к тому, что пара бы забывать о шаблонах ПХП и использовать его как язык программирования а не как язык шаблонов. Дизайнеры давно уже не лезут в код (для этого есть кодеры), а кодеру сам Бог велел знать XSLT и кусочки ПХП.
ИМХО никто и никогда не будет использовать в больших и серьезных проектах (сайтах) в которых занято не 2-3 человека "чистый ПХП", шаблоны еще возможно... хотя я бы уже начал задумываться на переход к XML
[OFF]сам щаз все делаю на XML, тк приходиться предоставлять информацию в разных видах типа HTML / Flash / PDF и тут без XML никуда... Храняться отдельно файл/ы с структурами данных сами файлы информаци и/или базы, а обрабатывать это все проще паренной репы. [/OFF]
Название: шаблоны vs php
Отправлено: Орлис от 19 Февраля 2004, 11:26:33
Цитировать
Т.е. использование связки
DB => PHP => XML + XSLT => PHP = HTML
очень медлительно


Время зависит только от размера файлов XML,
Пример: у меня файлы в сумме примерно 100K,
98% из примерно 300мсек приходится на преобразование XSLT
Название: шаблоны vs php
Отправлено: metton от 19 Февраля 2004, 14:46:08
KBA-KBA
Цитировать
DB => XML + XSL => HTML

Не понял, а какой смысл в первом преобразовании?
Название: шаблоны vs php
Отправлено: FreeSpace от 19 Февраля 2004, 20:19:16
metton
А тот смысл, что XML служит для хранения данных. Никаких методов их обработки не предоставляется.
А в базе данных есть много дополнительных удобств - хоть тот же поиск.

По поводу тормознутости:
Если не ошибаюсь, в PHP5 будет использоваться libxml2, которая работает намного быстрее первой. Правда я не знаю, отпразится ли это на XSL-преобразовании.
Название: шаблоны vs php
Отправлено: metton от 19 Февраля 2004, 20:51:39
FreeSpace
Тогда из твоих рассуждений можно сделать вывод, что XML ввобще лишний в этой цепочке.
Название: шаблоны vs php
Отправлено: FreeSpace от 19 Февраля 2004, 21:45:02
metton
А XSLT ты будешь на ответ базы данных натягивать?
Название: шаблоны vs php
Отправлено: metton от 19 Февраля 2004, 23:37:30
FreeSpace
Ладно, не буду спорить. Не сильно я пока сведущ в вопросах XML.
Название: шаблоны vs php
Отправлено: KBA-KBA от 23 Февраля 2004, 19:11:24
FreeSpace - угу... все верно...
Орлис - 0,3 сек - для меня не допустимо много... (посмотри вниз страницы на время генерирования)
ИМХО ждем  libxml2 и надеемся что это поможет :)