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]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
Stierus Супермодератор
Отправлено: 26 Января, 2009 - 17:10:49
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Ну вот и я тоже либо smarty использовал, либо php-шаблоны, а тут такое - стало интересно, где он ошибки умудрился найти.
 
My status
 Top
Джур
Отправлено: 27 Января, 2009 - 20:30:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




Я вот непонимаю, чего вы люди паритеь всегда так. Улыбка Шаблонизатор по принципу смарти можно написать за пару часиков... например вот: http://sitelive[dot]biz/file/ytrams/ytrams_015[dot]zip

И не РНР шаблон и работает как смарти и расширяется и вес 5кб. Подмигивание


-----
Тамбовский каджит тебе товарищ
 
 Top
Гость
Отправлено: 28 Января, 2009 - 00:24:21
Post Id


УДАЛЁН










Джур кстати согласен
Универсальыне шаблоны для небольших случаев это зло
Лучше написать самому - легче проще и удобнее получится в использовании

И кстати насчет IF и друних конструкций в шаблоне - может использовать XML вместе с XLT ?
 
 Top
Джур
Отправлено: 28 Января, 2009 - 09:30:59
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




JustUserR пишет:
И кстати насчет IF и друних конструкций в шаблоне - может использовать XML вместе с XLT ?


Мир не идеален дорогой JustUserR. Не идеальны броузеры, мониторы и люди. А так как неидеальны люди, неидеальны и их спецификации.

К чему это я?
Я к тому, что даные готовит РНР и хранит он их в виде хешей-масивов. Шаблонизатор это набор логики отображения который эту логику наложит на сырые данные. И в чем отличие XSLT от конструкций вида foreach/if? Где прибыль так сказать?

XSLT требует лишний шаг...
Так как РНР это набор хеш-масивов, их надо перегнать в XML и XML передать XSLT движку, который, даст бог, выдаст результат.

XSLT дороже в создании и еще дороже в поддержке, потому что, кодеров в универах учат языку C/C++ и окромя классов ничего такие кодеры не признают...
Если заикнутся про Пролог, удавят на месте. Улыбка


-----
Тамбовский каджит тебе товарищ
 
 Top
EuGen Администратор
Отправлено: 28 Января, 2009 - 10:12:19
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




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


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Гость
Отправлено: 28 Января, 2009 - 11:18:11
Post Id


УДАЛЁН










Цитата:
И в чем отличие XSLT от конструкций вида foreach/if? Где прибыль так сказать?
Да собственно нигде - только в относительном удобстве

Я вллбще не большой любитель всяких шаблонов я прсто имел в виду что XML вкупе с XSLT уже готовые так сказать движки для шаблонов и можно использовать их вместо того чтобы придуматьва свое
Но это все окненчо ИМХО
Цитата:
Если заикнутся про Пролог, удавят на месте.
Улыбка)
 
 Top
Джур
Отправлено: 28 Января, 2009 - 12:16:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




JustUserR кстати, вы же PERLовец.
Что сейчас в PERL популярно как шаблонизатор? Там же вроде без шаблонизатора писать нельзя. Просвятите плиз.


-----
Тамбовский каджит тебе товарищ
 
 Top
Гость
Отправлено: 28 Января, 2009 - 12:40:14
Post Id


УДАЛЁН










Цитата:
Что сейчас в PERL популярно как шаблонизатор?
Мне кажется сколько Perlовщиков столько и мнений Просто для Perlа существцует огромное преогромное количетсво различных модулей в том числе и шаблонизаторынх
Мне лично нравятся шаблонизатор типа CGI::Embedder и я он вроде тоже широкео используется
А вот тут тоже списко хороших шаблонизаторов http://netsago[dot]org/ru/docs/1/11

Цитата:
Там же вроде без шаблонизатора писать нельзя
Почему же нельзя еще как можно Улыбка Ничто не запрещает положить разные куски текста в различные here-строчки и выводить и потом как надо с подставновками
В Perlе просто всегда надо руками формировать HTTP-заголовки и если не предусмотреть бферзацию вывода то всегда будет валиться 500 ошибка - это так к слову

Цитата:
Ну а всетаки XML + XLST это хорошо
Благо есть модуль XML::XSLT Улыбка
 
 Top
brdm
Отправлено: 28 Января, 2009 - 14:59:33
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




Да ничего сложного.

1. Разбить URL на части.
2. Из частей выудить название страницы
3. Перйти на скриптик ее формирующий
4. запихнуть сформированную страничку в нужное место шаблона.
5. Вывести в браузер весь шаблон.

Примерно такая последовательность тут http://acvarif[dot]info/wbsphp/additphp/parser[dot]html

Там по моему немного не так как надо, но ход мысли именно такой, как описано выше
 
 Top
Джур
Отправлено: 28 Января, 2009 - 17:29:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




Цитата:
То есть, не стоит писать шаблонизатор, юзающий её?

Если очень хочется, почему бы и не попробывать.
Открою секрет, Ytrams это мой 4-й шаблонизатор. Поэтому перепробывал я многое... И Eval тоже.

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

Ядро получает запрос на вывод страницы, смотрит в куче, есть ли уже "собраный макет", если есть, то подключает его через eval(), если нет, то собирает его и подключает.

В итоге, эта штука обгоняла Smarty в 6-8 раз по скорости. Но эа это я платил тем, что "куча" с шаблонами была немаленькой (1-3Мб)

Резюмирую
Нет неправильных подходов, но перед тем как юзать, надо сначала надо потестировать. Подмигивание


-----
Тамбовский каджит тебе товарищ
 
 Top
Гость
Отправлено: 29 Января, 2009 - 01:41:24
Post Id


УДАЛЁН










Цитата:
Резюмирую
Нет неправильных подходов, но перед тем как юзать, надо сначала надо потестировать.
ИМХО да Все завсит от конкретного случая версии PHP и сервара и так далее
Однако как мне кажется не стоит лишать себя многих удобств подохода А если говорят что подоход А работает якобы медлеее на пару микросенкуд чем подход Б
Зато подход Б заставит вас потратить лишних нервов и строк кода Улыбка
 
 Top
Stierus Супермодератор
Отправлено: 29 Января, 2009 - 09:03:05
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Цитата:
2-й шаблонизатор назывался "eVa" и работал так:
Не мог бы ты выложить код ?
 
My status
 Top
Джур
Отправлено: 29 Января, 2009 - 12:02:55
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




Stierus пишет:
Не мог бы ты выложить код ?

Сожалею, коллега, но рабочих копий у меня не осталось, но в принципе могу собрать работающий аналог.
Я так понимаю, вам интересен сам принцип.


-----
Тамбовский каджит тебе товарищ
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB