Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: как написать удобный шаблонизатор [2]
И не РНР шаблон и работает как смарти и расширяется и вес 5кб.
----- Тамбовский каджит тебе товарищ
Гость
Отправлено: 28 Января, 2009 - 00:24:21
УДАЛЁН
Джур кстати согласен
Универсальыне шаблоны для небольших случаев это зло
Лучше написать самому - легче проще и удобнее получится в использовании
И кстати насчет IF и друних конструкций в шаблоне - может использовать XML вместе с XLT ?
Джур
Отправлено: 28 Января, 2009 - 09:30:59
Посетитель
Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007
Помог: 0 раз(а)
JustUserR пишет:
И кстати насчет IF и друних конструкций в шаблоне - может использовать XML вместе с XLT ?
Мир не идеален дорогой JustUserR. Не идеальны броузеры, мониторы и люди. А так как неидеальны люди, неидеальны и их спецификации.
К чему это я?
Я к тому, что даные готовит РНР и хранит он их в виде хешей-масивов. Шаблонизатор это набор логики отображения который эту логику наложит на сырые данные. И в чем отличие XSLT от конструкций вида foreach/if? Где прибыль так сказать?
XSLT требует лишний шаг...
Так как РНР это набор хеш-масивов, их надо перегнать в XML и XML передать XSLT движку, который, даст бог, выдаст результат.
XSLT дороже в создании и еще дороже в поддержке, потому что, кодеров в универах учат языку C/C++ и окромя классов ничего такие кодеры не признают...
Если заикнутся про Пролог, удавят на месте.
----- Тамбовский каджит тебе товарищ
EuGen
Отправлено: 28 Января, 2009 - 10:12:19
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Это верно, изнутри все выглядит точно так же. Выигрыш виден только с точки зрения кажущегося иного подхода.
Ну и, конечно, в разных случаях удобнее использовать разные шаблонизаторы, думаю это всем ясно..
Я тоже пару раз писал под свои нужды небольшие по весу, было удобнее, чем использовать что-то готовое.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Гость
Отправлено: 28 Января, 2009 - 11:18:11
УДАЛЁН
Цитата:
И в чем отличие XSLT от конструкций вида foreach/if? Где прибыль так сказать?
Да собственно нигде - только в относительном удобстве
Я вллбще не большой любитель всяких шаблонов я прсто имел в виду что XML вкупе с XSLT уже готовые так сказать движки для шаблонов и можно использовать их вместо того чтобы придуматьва свое
Но это все окненчо ИМХО
Цитата:
Если заикнутся про Пролог, удавят на месте.
)
Джур
Отправлено: 28 Января, 2009 - 12:16:32
Посетитель
Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007
Помог: 0 раз(а)
JustUserR кстати, вы же PERLовец.
Что сейчас в PERL популярно как шаблонизатор? Там же вроде без шаблонизатора писать нельзя. Просвятите плиз.
----- Тамбовский каджит тебе товарищ
Гость
Отправлено: 28 Января, 2009 - 12:40:14
УДАЛЁН
Цитата:
Что сейчас в PERL популярно как шаблонизатор?
Мне кажется сколько Perlовщиков столько и мнений Просто для Perlа существцует огромное преогромное количетсво различных модулей в том числе и шаблонизаторынх
Мне лично нравятся шаблонизатор типа CGI::Embedder и я он вроде тоже широкео используется
А вот тут тоже списко хороших шаблонизаторов http://netsago[dot]org/ru/docs/1/11
Цитата:
Там же вроде без шаблонизатора писать нельзя
Почему же нельзя еще как можно Ничто не запрещает положить разные куски текста в различные here-строчки и выводить и потом как надо с подставновками
В Perlе просто всегда надо руками формировать HTTP-заголовки и если не предусмотреть бферзацию вывода то всегда будет валиться 500 ошибка - это так к слову
Цитата:
Ну а всетаки XML + XLST это хорошо
Благо есть модуль XML::XSLT
brdm
Отправлено: 28 Января, 2009 - 14:59:33
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2009
Помог: 0 раз(а)
Да ничего сложного.
1. Разбить URL на части.
2. Из частей выудить название страницы
3. Перйти на скриптик ее формирующий
4. запихнуть сформированную страничку в нужное место шаблона.
5. Вывести в браузер весь шаблон.
Там по моему немного не так как надо, но ход мысли именно такой, как описано выше
Джур
Отправлено: 28 Января, 2009 - 17:29:23
Посетитель
Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007
Помог: 0 раз(а)
Цитата:
То есть, не стоит писать шаблонизатор, юзающий её?
Если очень хочется, почему бы и не попробывать.
Открою секрет, Ytrams это мой 4-й шаблонизатор. Поэтому перепробывал я многое... И Eval тоже.
2-й шаблонизатор назывался "eVa" и работал так:
брались все шаблоны которые юзались для генереции страницы, превращались в РНР код (заметте, не отдельно как в смарти, а все сразу) и все это дело сохранялось на некоторое время в большой куче (в базе данных)
Ядро получает запрос на вывод страницы, смотрит в куче, есть ли уже "собраный макет", если есть, то подключает его через eval(), если нет, то собирает его и подключает.
В итоге, эта штука обгоняла Smarty в 6-8 раз по скорости. Но эа это я платил тем, что "куча" с шаблонами была немаленькой (1-3Мб)
Резюмирую
Нет неправильных подходов, но перед тем как юзать, надо сначала надо потестировать.
----- Тамбовский каджит тебе товарищ
Гость
Отправлено: 29 Января, 2009 - 01:41:24
УДАЛЁН
Цитата:
Резюмирую
Нет неправильных подходов, но перед тем как юзать, надо сначала надо потестировать.
ИМХО да Все завсит от конкретного случая версии PHP и сервара и так далее
Однако как мне кажется не стоит лишать себя многих удобств подохода А если говорят что подоход А работает якобы медлеее на пару микросенкуд чем подход Б
Зато подход Б заставит вас потратить лишних нервов и строк кода
Stierus
Отправлено: 29 Января, 2009 - 09:03:05
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Цитата:
2-й шаблонизатор назывался "eVa" и работал так:
Не мог бы ты выложить код ?
Джур
Отправлено: 29 Января, 2009 - 12:02:55
Посетитель
Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007
Помог: 0 раз(а)
Stierus пишет:
Не мог бы ты выложить код ?
Сожалею, коллега, но рабочих копий у меня не осталось, но в принципе могу собрать работающий аналог.
Я так понимаю, вам интересен сам принцип.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.