The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Template system as just a 'str_replace()'?"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Template system as just a 'str_replace()'?"
Сообщение от Александр emailИскать по авторуВ закладки on 28-Мрт-04, 03:27  (MSK)
Народ, скажите, пожалуйста, кто в теме: почему нельзя всю систему построения темплейтов свести к простым действиям вида:
-1. Открываем ХТМЛ шаблон
-2. Составляем массив данных для поиска (например, array('[#ForumName#]', '[#ForumDate#]'))
-3. Составляем массив данных для замены (например, array($ForumName, $ForumDate))
-4. Скармливаем это всё str_replace-у, который проходит по всему HTML куску, и меняет все вхождения шаблонных спец. данных на актуальные.

Насколько я понимаю, это может быть не очень гибко (т.к. есть прямая зависимость между шаблоном и движком), но зато весьма эффективно с точки зрения производительности, а за переменными, которые высчитываются всё равно следить надо, чтобы лишний раз сервер не гонять. Или я не прав?

Заранее благодарен,
/Александр.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Template system as just a 'str_replace()'?"
Сообщение от MeLLowD Искать по авторуВ закладки on 29-Мрт-04, 17:57  (MSK)
имхо preg_replace работает в несколько раз быстрее :)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Template system as just a 'str_replace()'?"
Сообщение от Александр emailИскать по авторуВ закладки(??) on 29-Мрт-04, 18:26  (MSK)
>имхо preg_replace работает в несколько раз быстрее :)

Ок, но суть одна и та же?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Template system as just a 'str_replace()'?"
Сообщение от MeLLowD Искать по авторуВ закладки on 29-Мрт-04, 18:59  (MSK)
>>имхо preg_replace работает в несколько раз быстрее :)
>
>Ок, но суть одна и та же?

Естественно в основе лежит простая замена ;)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Template system as just a 'str_replace()'?"
Сообщение от Александр emailИскать по авторуВ закладки(??) on 29-Мрт-04, 19:07  (MSK)
>>>имхо preg_replace работает в несколько раз быстрее :)
>>
>>Ок, но суть одна и та же?
>
>Естественно в основе лежит простая замена ;)

Не всё так плохо - это я понимаю =)
Мне просто интересно зачем тогда какие-то ешё навороченные системы кеширования (Smarty)? Что нового можно добавить?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Template system as just a 'str_replace()'?"
Сообщение от zenon emailИскать по авторуВ закладки(??) on 29-Мрт-04, 20:55  (MSK)
>Не всё так плохо - это я понимаю =)
>Мне просто интересно зачем тогда какие-то ешё навороченные системы кеширования (Smarty)? Что
>нового можно добавить?

Меня тоже давно терзает этот вопрос =)
Главное, что я не могу понять, так это почему нельзя обойтись средствапи PHP для оформления шаблонов, т.е. идея та же самая

1) Составляем массив данных для вывода
$out = array('name'=>'123', 'title'=>'456');

2) В шаблоне в необходимых местах прописываем например так

<b><?=$out['name']?></b>::<?=$out['title']?>

3) Шаблон хранится в отдельном файле ('page.tpl.php')

4) Подключаем шаблон

include('page.tpl.php');

ИМХО такой способ будет работать гораздо быстрее, чем str_replace и preg_replace. Да и функциональность шаблона значительно расширивается -- в нее входят все возможности PHP.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Template system as just a 'str_replace()'?"
Сообщение от Александр emailИскать по авторуВ закладки(??) on 29-Мрт-04, 21:17  (MSK)
>Меня тоже давно терзает этот вопрос =)

Значит я не одинок =)

>Главное, что я не могу понять, так это почему нельзя обойтись средствапи
>PHP для оформления шаблонов, т.е. идея та же самая

Но обычному пользователю, по-моему, будет вставлять значения вида [#ForumTitle#], [#ForumDate#] чем какие-то конструкции, в которых можно ещё что-то наворотить... Кроме того, если уж совсем далеко смотреть, то такие шаблоны не зависят от языка программирования...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Template system as just a 'str_replace()'?"
Сообщение от zenon emailИскать по авторуВ закладки(??) on 29-Мрт-04, 21:35  (MSK)
>Но обычному пользователю, по-моему, будет вставлять значения вида [#ForumTitle#], [#ForumDate#] чем какие-то
>конструкции, в которых можно ещё что-то наворотить...

А велика ли разница между конструкциями [#ForumTitle#] и <?=ForumTitle?> ?;)

По поводу "наворотить", то верстальщику (допускать "рядового пользователя" к редактированию шаблонов я бы не стал =) ) можно не объяснять всех тонкостей PHP. Ему достаточно знать как вставить значение переменной и как организовать простой цикл. Кроме того, в PHP уже есть механизм вывода ошибок... Так стоит ли пренебрегать уже работающим кодом?

>Кроме того, если уж
>совсем далеко смотреть, то такие шаблоны не зависят от языка программирования...
>

С языками программирования тоже можно найти компромисс. Какая разница какой язык шаблонов реализовывать, если это делается с нуля. У PHP есть устоявшийся синтаксис, который можно использовать,исходники парсера PHP открыты для ознакомления (не знаю, правда как Zend отнесется к использованию фрагментов своего кода, но это уже не суть важно)

А по поводу скорости, действительно кроме ИМХО ничего предоставить не могу =), но сдается мне, что парсер PHP работает быстрее, чем парсер, написанный на PHP ;)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Template system as just a 'str_replace()'?"
Сообщение от Александр emailИскать по авторуВ закладки(??) on 29-Мрт-04, 21:45  (MSK)
>А велика ли разница между конструкциями [#ForumTitle#] и <?=ForumTitle?> ?;)

Просто не хотелось бы обычному пользователю (хоть и верстальщику) дать возможность вставлять свой код - я за него не смогу ручаться...

>А по поводу скорости, действительно кроме ИМХО ничего предоставить не могу =),
>но сдается мне, что парсер PHP работает быстрее, чем парсер, написанный
>на PHP ;)

Логично, конечно, но всё-таки цифры были бы интереснее...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Template system as just a 'str_replace()'?"
Сообщение от Александр emailИскать по авторуВ закладки(??) on 29-Мрт-04, 21:18  (MSK)
>имхо preg_replace работает в несколько раз быстрее :)

Кстати, а знает ли кто-нибудь - где можно найти нормальное сравнение, а не "имхо"? Просто интересно, может кто уже проводил что подобное?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Template system as just a 'str_replace()'?"
Сообщение от MeLLowD Искать по авторуВ закладки on 30-Мрт-04, 13:38  (MSK)
тема уже обсуждалась http://phpclub.ru/talk/showthread.php?s=&threadid=40632


  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Template system as just a 'str_replace()'?"
Сообщение от Александр emailИскать по авторуВ закладки(??) on 31-Мрт-04, 10:02  (MSK)
>тема уже обсуждалась http://phpclub.ru/talk/showthread.php?s=&threadid=40632


  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Template system as just a 'str_replace()'?"
Сообщение от Александр emailИскать по авторуВ закладки(??) on 31-Мрт-04, 10:03  (MSK)
>>тема уже обсуждалась http://phpclub.ru/talk/showthread.php?s=&threadid=40632

Thanks.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру