Forum Webscript.Ru
Программирование => PHP => Тема начата: Britva от 08 Января 2002, 11:31:32
-
Класс написал для работы с шаблонами (очередной :)) на php
http://eugeny.com/programmer/scripts/template.zip
рез-т можно отобразить с помощью функции eval, либо просто вывести
Ваше мнение интересно.
взял за основу работу с шаблонами в XMB (и не только), но там они хранятся в БД, а я сделал в файлах (что намного удобней).
ИМХО мне очень такой способ понравился. примерчик маленький есть.
класс не тестировал, так что ошибки могут быть.
-
взял за основу работу с шаблонами в XMB
А в чем там новшество? Я не ставил и не колупал XMB, а суть знать интересно... :)
-
Посмотрел щас wbb, там такая же система шаблонов. только уже с файлами :) как у меня :)
работает все на основе eval.
а в XMB они хранятся в БД, что имхо очень неудобно. но зато у него есть lang-файл :)
А так, идея не оригинальна, я просто очень хотел чтобы можно было такое использовать. Кстати, ни один класс/библиотека шаблонов не использует eval (по крайней мере я не видел), везде рег.выражения для замены {}, <##> ...
-
Значит нужно смотреть...
В wbb стандарт-шаблоны. Новшеств нет.
-
eval для разборки шаблонов - не есть хорошо, впрочем, я тебе уже свое мнение по этому поводу сказал приватно ;)
Может все таки попробовать сделать по максиму регулярными выражениями - быстрее и безопаснее.
Лично мне интеллектуальность шаблонов пока требовалась лишь такая:
если что-то есть, то включаем такой-то код/контент, а это можно и через рег.выр. сделать
-
Да, но почему тогда такие форумы, как wbb/xmb/vB летают. Они же ведь используют везде eval.
-
Britva
Эти форумы не могут летать :) Не знаю как WBB, а два оставшихся юзают в среднем по 20 запросов в базу при создании страницы, так что для них парсинг темплейтов - едрунда.
Кстати, думаю стардартные ереги безопаснее и с мой точки зрения более удобны для дизайнера.
-
Stek
WBB - http://wbbhacks.com, http://www.script.com.ua, http://forum.xonix.ru, http://board.ee
Кстати, думаю стардартные ереги безопаснее и с мой точки зрения более удобны для дизайнера.
согласен - безопаснее :), но eval удобнее для программиста :)
-
Кстати, думаю стардартные ереги безопаснее и с мой точки зрения более удобны для дизайнера.
Просто regexp-ы медленные. Например по моим тестам этот класс раз в 5 быстрее Smarty (правда это тест на простейшем темплейте и на крупных шаблонах наверное результаты будут отличаться)
По-моему более правильно поступили авторы EasyTemplate - использовали простые строковые параметры (str_replace(), strtr()) - в результате их шаблон работает очень быстро и безопасно но слабая функциональность - хотя без нее часто можно обойтись.
согласен - безопаснее , но eval удобнее для программиста
Я выбираю безопасность :)
-
Я выбираю безопасность :)
Я тоже, но не думаю, что дизайнер все время будет мечтать о крушении сайта :)
кстати, интересная статейка насчет оптимизации и времени выполнения: http://php.spb.ru/php/speed.html
-
Сделал более новую версию + редактор этих шаблонов и пример использования.
http://eugeny.com/programmer/scripts/template.zip
описания пока нет, скоро напишу.
-
Поднимаю тему :)
Реально столкнулся с быстродействием шаблонов, теперь в полном смятении.
Через eval использовать не приятно.
Нашел вот http://templatepower.codocad.com/ аналог FastTemplate, но по заявкам авторов до 5 раз быстрее.
Что делать с FastTemplate - даже и не знаю.
phpBB 2 полностью на них перешли. В результате парсинг стал жрать дикое колличество ресурсов. В форуме куча криков о том, что при переходе на новую версию - сервер падает. А жалобы именно на апач, а не на MySQL как у всех остальных форумов.
Вот тут и вспомнил про этот топик. Так елки палки, какие эе темплейты лучше при большом колличестве запросов, с учетом того что темплейт таки сложный .
-
Посмотрел систему шаблонов VB, там всё на eval.
-
Может easyTemplate - они не используют регулярных выражений и он даже чуть быстрее того что Britva писал.
Вроде еще Smarty все хвалят.
-
Мда, тяжела доля выбора.
А где почитать про easyTemplate можно ?
-
Я его на диске взял, который с книгой "PHP4: разработка веб-приложений" был. Если хочешь - могу прислать куда-нибудь.
-
Help plz... не знаю как достать переменную которая задается
в адресной строке (index.php?a=b) из шаблона.
global $a не выходит :-( Тут походу проблема в fasttemplate - подскажите как поступить....
-
при чем тут темплейты то ?
По идее это в $HTTP_GET_VARS["a"]