Ну, девелоперы, колитесь!

vovik

Guest
я сейчас использую xml+xsl и очень, очень доволен :) Причем сначала я использовал это дело только как замену шаблонам, но оказалось, что у xml еще куча всяческих полезных применений ...
Начинал, как и все, с фасттемплейта и написания собстенных шаблонных движков :)
 

kvn

programmer
Автор оригинала: Poltergeist
Народ, объясните мне такую вещь. Зачем пользоваться темплейтами, если можно загонять нужный элемент(меню например) в переменную типа $menu, а далее в нужном месте
<? echo $menu; ?> .
Я просто не могу Вас понять, Вы то кричите что PHP тормозно работает, то используете технологии, написанные на том же "тормозном"(это с Вашей же точки зрения) языке, и соответственно еще более "тормозные". Объясните мне в чем суть таких разногласий?
По-моему - PHP это уже язык шаблонов (грубо), и мне он нравится потому, что я могу объяснить дизайнеру или верстальщику, что для вывода определенного элемента ему надо сделать так <? echo $element_name; ?>, а ему не надо думать, что происходит внутри.
При твоем подходе, например если меню($menu), у меня html-table, то как мне обьяснить тому же дизайнеру, как ему задизайнить мое меню, элементы которого достаются из БД с циклом, и разными условиями выборки от параметров запроса?

Отдать ему на растерзание мой кульный php-script?
боже упаси...:)

Про тормоза - возможно ты и прав.
Но это мизерная (0.01-0.5 сек.) жертва для более удобной разработки, поддержки и развития проекта...

На жабе люди тоже не спроста пишут биг-прожекты, а она ух как тормозит...:))
 

dr.vint

Guest
2 Poltergeist

По моему предложенный тобой метод несколько неудобен,
даже по сравнению с использованием FastTemplate, не говоря уже об остальных
 

Poltergeist

Guest
Зато этот метод на порядок быстрее.
А насчет удобства можно поспорить. На мой взгляд, проще некуда. Ведь все равно во всех темплейтах приходится определять значения переменных, а уж в какие скобки они заключаются в [переменная] или <? echo $переменная ;?> не играет никакой роли. Мне так удобно, а главное - не надо раздувать проект с 400k до нескольких мегов.
 

tony2001

TeaM PHPClub
2 Poltergeist:
начнем с того, что <?=$var?> значительно удобней.
потом, проект не раздувается с использованием шаблонов- наоборот я половину из шаблонов использую в разных целях и с разным содержанием.
кроме того, шаблоны могуть быть вложенными.
беру шаблон таблицы, парсю, вставляю результат в другой шаблон.
в твоем варианте я не вижу такой функциональности.
насчет тормознутости: извини, но ты не прав. я тестил специально шаблоны в сравнении.
страница, на которой десяток переменных, половина из которых берется из базы парсится за сотые доли секунды.
в следующий раз при утверждениях типа "Зато этот метод на порядок быстрее" приводи ФАКТЫ.
и еще. дизайнер _не должен_ знать синтаксис какого-то языка.
в твоем случае - это обязательное условие. если, не дай бог, он забудет где-то точку с запятой поставить - будет глюк.

>Мне так удобно, а главное - не надо раздувать проект с 400k до нескольких мегов.
если я не умею пользоваться ключом, я не доказываю всем вокруг что ключ - сакс, а вот нога для выбивания двери - рулез.
ты просто чего-то не понял.
 

alexbl

Guest
У меня другой вопрос: что эффективней использовать xml+xsl+php или php+template или просто php (<?=$test?>) при построении небольшого сайта?
 

Dim-Dim

looking...
Автор оригинала: [DAN]
...
Оглянулся вокруг, увидел XML, XSL. Попробовал - очень понравилось. Пытался как-то пристроить его к вебу, выходило хреново.
...
Я вот тоже попытался прикрутить к вэбу в замен шаблонов. И тоже не особо получилось. Мож поделишься опытом?
 

dr.vint

Guest
2 [DAN]
Кстати да, какой движок используешь ?
 

Foshvad

Guest
очень бы хотелось услышать вчепатления тех, ктьо реально использует xml+php; Сколь это удобна и какая это этого принципиальная выгода?
(сорри за оффтопик, но в начале ревь шла о шаблонах :)
 

Poltergeist

Guest
2 tony
Насчет функциональности.
Функциональности PHP тебе мало? мне например много (для проекта любой сложности).
Вложенные шаблоны
Пример:

PHP:
<? 
$table="<table><tr><td></td><td></td></tr></table>";
$adv_table="<table><tr><td></td><td>   $table   </td></tr></table>";
?>
Или я неправильно понимаю вложенность?
Факты
Тебе нужны тесты в картинках? По-моему, довольно ясно, что echo выполняется гораздо быстрее чем любой replace/парсинг.
Дизайнер
Дизайнера никто не заставляет что-либо учить, (хотя в шаблонах ему все равно придется разбираться, у них тоже свой синтаксис есть) ему надо смотреть на лист в Ворде и вставлять переменные copy/paste.

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

P.S. Не будьте агрессивными когда у Вас спрашивают вежливо, а то последнее время в клбе всех чуть ли ни на фуй посылают, даже когда вопросы толковые и интересные (это не про мой пост). А когда встречается тема "Как вывести на экран Hello world" так ответов за 30 зашкаливает.
 

tony2001

TeaM PHPClub
извини, но некоторые твои аргументы смахивают на бред.
цитата:
Мне так удобно, а главное - не надо раздувать проект с 400k до нескольких мегов.
это где ты такое видел ?

еще цитата:
>Зато этот метод на порядок быстрее.
????
на str_replace тратятся копейки ресурсов!

Дизайнера никто не заставляет что-либо учить, (хотя в шаблонах ему все равно придется разбираться, у них тоже свой синтаксис есть)
да, в шаблонах тоже есть определенный синтаксис.
только при его несоблюдении Parse error нет.
а дизайнеру надо понимать то, что он вставляет.
тупо copy/paste приводит к глюкам.

И я никому ничего не старался доказать, просто высказал свое мнение
после этого:
Народ, объясните мне такую вещь. Зачем пользоваться темплейтами, если можно загонять нужный элемент(меню например) в переменную типа $menu, а далее в нужном месте
<? echo $menu; ?> .
Я просто не могу Вас понять, Вы то кричите что PHP тормозно работает, то используете технологии, написанные на том же "тормозном"(это с Вашей же точки зрения) языке, и соответственно еще более "тормозные".
звучит странно...
так мнение не высказывают.
ты просил объяснить - я попытался это сделать.
сорри, если где-то не сдержался, мне в отпуск пора уже, нервный стал =(
 

pachanga

Новичок
Народ! Вау! Пришел с учебы, а тут столько понаписали :)

Немного оклонились от темы! Народ, делитесь принципами построения и поддержания структуры сайта вообще. От начала и до конца. Вплоть до того, что, может кто еще и WinCVS пользует :)
Вообще поддержка - это самое интересное :)

Да темплейтные движки это прикольно, но что же выходит с контентом?
Допустим у нас есть шаблон, в который мы вставим контент '<p>Hi, world</p>', то что же получается, мы должны сделать примерно вот так:
PHP:
<?
    $content = '<p>Hi, world</p>';
    $page_template = 'index.tmpl';

    $parser = new super_template_parser($page_template);
    $parser->assign('CONTENT', $content);
    echo $parser->parse();

?>
Вроде все нормально, но только не для редактора-контентера! А что если, областей несколько и контент действительно большой? А еще этот самый редактор обожает ставить апостроф? И вообще редактор, сволочь, привык к WYSIWYG :(

Сам я просто торчал вначале от темплейтных движков, но когда появился реальный заказ, где заказчик не хотел инвестировать в создание полноценной CMS, а обойтись стандартными средствами поддержки сайта, нам пришлось чесать репу! Поэтому решено было пользовать DreamWeaver в такой связке.
Нет, конечно, про template engines не забываем, но только для небольших, нейнформационных проектов, только у нас свой доморощенный, простой, как лом, template engine.

XML + XSL - это интересно, но скажите мне, как вставлять динамику в XML? Скажем, постоянно меняющиеся "ушки", для blog проекта или автоматическую навигацию?
 

Poltergeist

Guest
2 tony
Насчет тормозов
А ты посмотри сколько топиков в форуме, когда люди говорят, что PHP тормозит (хотя, почти всегда по вине плохо написанного кода). Я как раз и обращался к тем людям, которые это говорили.

А раздутие кода, может я не так выразился, просто когда я ставил пару движков темплейтов - вышла такая ситуация: движок занимал места больше чем проект :-(

А в отпуск всем пора. Все в Крым!!!
 

Flying

Guest
XML + XSL - это интересно, но скажите мне, как вставлять динамику в XML? Скажем, постоянно меняющиеся "ушки", для blog проекта или автоматическую навигацию?
Как раз в XML это вставляется элементарно. Ведь с его помощью ты можешь создать произволную структуру данных, а затем обработать ее через XSLT. Нужно просто знать, где и что у тебя лежит, а уж доставать это потом через XPath и обрабатывать на XSLT - сплошное удовольствие (за исключением некоторых частных случаев, которые на XSLT 1.0 пока что описываются достаточно криво).
 

tony2001

TeaM PHPClub
2 Poltergeist:
А ты посмотри сколько топиков в форуме, когда люди говорят, что PHP тормозит (хотя, почти всегда по вине плохо написанного кода)
гм. сам сказал и сам ответил =)

2 pacha
>Вроде все нормально, но только не для редактора-контентера!
гм. ты собираешься все переменные задавать в своем скрипте ?
а база ?
а CMS как же ?
 

pachanga

Новичок
Автор оригинала: tony2001
2 Poltergeist:

гм. сам сказал и сам ответил =)

2 pacha
>Вроде все нормально, но только не для редактора-контентера!
гм. ты собираешься все переменные задавать в своем скрипте ?
а база ?
а CMS как же ?
В том-то и вся проблема! Нет у нас(точнее заказчик категорически против)CMS!!!
 

pachanga

Новичок
Автор оригинала: Flying

Как раз в XML это вставляется элементарно. Ведь с его помощью ты можешь создать произволную структуру данных, а затем обработать ее через XSLT. Нужно просто знать, где и что у тебя лежит, а уж доставать это потом через XPath и обрабатывать на XSLT - сплошное удовольствие (за исключением некоторых частных случаев, которые на XSLT 1.0 пока что описываются достаточно криво).
Дико интересно, продолжай! Чем мы формируем xml? Мы сами потом пишем php скрипт, проходящий весь сайт и производящий XSLT трансформацию или..или что?
Давай подробнее! :)
Да, про XSLT, Xpath я все знаю - описывай, стратегию разработки и поддержки сайта.
 

pachanga

Новичок
!

Э, девелоперы!
Еще раз призываю, описывайте, стратегию создания и поддержки сайта. В частности не ударяйтесь.

Мы OpenSource или как?
 

Foshvad

Guest
В случае

PHP:
<?  
$table="<table><tr><td></td><td></td></tr></table>"; 
$adv_table="<table><tr><td></td><td>   $table   </td></tr></table>"; 
?>

подходит только для статических шаблонов, которые определяются последовательно.
А если наблоны нужны для меню?
<a href=$href>$name</a>

Когда шаблон в цикле. Тут без тормознутого eval(), imho, не обойдешься.
Но и это не выход, так как о вложенных шаблонах прийдется забыть, ибо
$name уже не может быть равен <div class=$class>$text</div>

Чует мое седрце, что без xml тут не обойтись, только хочется чтоб кто-то привел пример как он (xml) всех спасет :)
 

[DAN]

Старожил PHPClub
Автор оригинала: dr.vint
Кстати да, какой движок используешь ?
libxml+libxslt+libexslt. Причем периодически ставим последнюю версию из CVS.
Автор оригинала: Dim-Dim
Я вот тоже попытался прикрутить к вэбу в замен шаблонов. И тоже не особо получилось. Мож поделишься опытом?
Поделюсь. Пока что успешно реализую xml+xslt на уровне сборки информации от всех модулей в один большой DOM объект. Плюс каждый модуль дает свою часть xsl-шаблона, которая затем добавляется в общий шаблон страницы.
Потом проводится xsl-трансформация и результат выдается пользователю.
Вобщем-то стандартный подход.
Единственный момент, на котором я щас стопарюсь, это сборка данных из всяких-разных источников в xml. Пока что тупо строки конкатенирую и перевожу все в объект.
Если бы с xml-ориентированными БД поработать, может и появились бы какие-нить светлые мысли.
Да, чуть не забыл, весь программинг основан на объектно-ориентированной парадигме.

to Foshvad:
Выгоды: rapid development, модульность приложения, повторное использование с минимальными настройками.
Один проектирует БД и пишет sql-запросы к ним. Второй пишет интерфейсы. Третий проектирует и реализует логику приложения, четвертый дезигнет. И все работают одновременно.
А затем в один день все четверо садятся и собирают все в один большой проект. За неделю пишется от 2-х до 6-ти модулей (от голосовалки до ешопа).
Ядро написали за 2 недели "на все случаи жизни".
Вобщем-то удобнее оказалось, чем шаблоны юзать.
 
Сверху