Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Шаблонизатор 
:(
    Опции темы
Opik
Дата 6.6.2005, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



Mal Hack
например!?
т.е в идеале подключается откомлиленный файл. Где нету ничего лишнего, по сути.
PM MAIL Skype   Вверх
IZ@TOP
Дата 6.6.2005, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата(Mal @ 6.6.2005, 17:55)
Зачем? Зачем тратить машинное время на парс этих циклов. Не проще ли их выполнять на программном уровне сразу? Просто хочется понять.

Вообще я если честно долго думал, делать условные блоки или не делать в циклах шаблона, так пока и не сделал. Мне тоже кажется что это будет уже перебор. Хотя как то реализовать некоторые вещи хочется.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 6.6.2005, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



сами подумайте что будет выполнятся быстрее? (цикл)
1) аля IPB
Код

while($row = mysql_fetch_assoc($query))
{
      $out .= parseNews($row);
}
...
function parseNews($data)
{
return <<<EOF
...
EOF;
}

или
Код

<? while($row = mysql_fetch_assoc($query))
{ ?>
 <?=$row['text']?> ....
<? } ?>

PM MAIL Skype   Вверх
IZ@TOP
Дата 7.6.2005, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Opik, и что же бдет работать быстрее?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 7.6.2005, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



IZ@TOP
по моему всё таки второе, потому что не вызывается каждый раз функция, что всё таки тоже требует времени.
PM MAIL Skype   Вверх
IZ@TOP
Дата 7.6.2005, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Opik, ага, мне тоже так кажется. Но тогда если мы так дорожим производительностью, давайте кодить как наши прадеды!? smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 7.6.2005, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



IZ@TOP
т.е? да и зачем в крайности.
PM MAIL Skype   Вверх
americanets
Дата 15.12.2006, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



замена наборов символов в тексте на другой

у меня есть файл cont.txt

я его читаю
$f = fopen("sh.txt","r");
fclose($f);
он выступает в роли шаблона для страницы, как можно заменить в нем TITLE на $title
CONTENT на вызов функции и т д


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Mystery_of_being
Дата 15.12.2006, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 7.11.2006

Репутация: нет
Всего: нет



Не легче в шаблоне вызывать код? 

Но я вот не совсем понял задачу.. у тебя в sh.txt есть title и ты хочешь его на $title ?  

str_replace ( 1, 2, 3)

Ищем (1), затем то что нашли меняем на (2) , где ищем (3)
PM MAIL WWW ICQ   Вверх
Vaulter
Дата 16.12.2006, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 6
Всего: 22



americanets, есть такое понятие... шаблонизатор
.....
он все это делает, preg_matchи и т.д. 



--------------------
PM MAIL WWW ICQ   Вверх
americanets
Дата 18.12.2006, 08:55 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



понятно , буду искать и пробовать


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
SamDark
Дата 18.12.2006, 11:07 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 10
Всего: 38



americanets
Vaulter
Нафига вам шаблонизатор?! PHP и так самый замечательный шаблонизатор сам по себе.

Код

    function postfilter($buffer){
        // тут применяем фильтры уже сформированного html
        return $buffer;
    }
    
    $__content = $_GET['content'];
    ob_start('postfilter');
    include('design.php');
    ob_end_flush();


Шаблон:
Код

<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <?php include($__content); ?>
    </body>
</html>



--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
americanets
Дата 18.12.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



ясно, а цыклы типа while можно как нибудь вывести подобным образом? 


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
nickon
Дата 18.12.2006, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Цитата
Что по Вашему мнению должен включать в себя шаблонизатор и какие функции вообще иметь?
1) Работа с одном документе с разными шаблонами.
2) Работа с данными (Как вывод простой переменной, так и массива в шаблоне).
3) Компиляция (Если файл шаблона изменился, "компилируем" заного).


Лично я считаю, что в самом шаблоне ничего не должно быть лишнего... только заданный набор тегов... 
всё остальное делается на уровне кода... 

Функций шаблонизатору нужно совсем немного .... замена одичных и блочных переменных... + грамотное кеширование...
как дополнение (опционально) можно сделать поддержку php кода в шаблонах ...

Воопще хотелось бы ещё обсудить принципы построения кеша для динамических шаблонов...  
PM MAIL   Вверх
Vaulter
Дата 18.12.2006, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 6
Всего: 22



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

так вот. для каждой функции вывода блока должна быть маленькая функция возвращающая время последнего изменения блока (для новостей, дата последней новости, для пользователя например дата последнего привата или даже 0 для стат. блоков!)

ну и соотв. проверяется если дата создания кэша больше всех времен, он валидный.
иначе генерируем (с вызовом всех блоков) новый кэш.

вот такой... пока TODO


--------------------
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1245 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.