За последние 24 часа нас посетили 8833 программиста и 488 роботов. Сейчас ищут 265 программистов ...

Шаблонизатор на C

Тема в разделе "Решения, алгоритмы", создана пользователем Danilka, 14 ноя 2007.

  1. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    0
    Адрес:
    леноград
    Ну и что, может кто-нибудь по человечески объяснит, как мне поменять видеокарту не открывая корпус? =)
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.901
    Симпатии:
    967
    Ну и что, может кто-нибудь по человечески? =)
     
  3. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    0
    Адрес:
    леноград
    Нежнее, ещё нежнее!
     
  4. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    dark-demon
    можно через вынутые заглушки пятидюймовых щелей %) мы так меняли, когда стенка боковая была запечатана :)
    напоминает вырывание гланд через задницу :))
     
  5. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.154
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    А я знаю как ATX БП запустить без кнопки. Надо зелёненький проводок замкнуть с чёрненьким. :)
     
  6. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Hight
    Неверно :) в данном случае скорость работы шаблонизатора будет зависеть не от сложности алгоритма, а от количества и суммарного объема шаблонов. Для каждого запроса заново перелопатить 20-50 Кб текста в поисках спецтегов - это замедлит шаблонизатор, неважно, на чем он написан, неважно, много у него возможностей или мало.

    Горбунов Олег
    Я уже выше писал, что кешировать готовую страницу не надо. Надо кешировать разпарсенный шаблон. Когда работает компилятор, что он "кеширует"? Готовые данные или все-таки программный код? Вот и с шаблонизаторами так же.
     
  7. Danilka

    Danilka Активный пользователь

    С нами с:
    8 ноя 2007
    Сообщения:
    192
    Симпатии:
    0
    Предположим:

    index.tpl:
    HTML:
    1. {{loop}}
    2. <b>{name}</b>
    3. {s_name}<br>
    4. {{/loop}}
    index.php:
    PHP:
    1. $tpl -> loop( array( 1 => array( 'name' = 'Вася' , 'sname' => 'Пупкин' ) , 2 => array( 'name' = 'Илья' , 'sname' => 'Петров' ) ) );
    (Допустим данные о чуваках берутся с удалённого эскьюэл сервака и шаблонизатор не может знать, когда их станет больше)

    Результат:
    Вася Пупкин
    Илья Петров

    Что тут должен закешить шаблонизатор?
     
  8. Anonymous

    Anonymous Guest

    компилятор - ничего не кеширует. он компилирует. он компилятор.
     
  9. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Горбунов Олег
    Если он просто переводит программу из одного языка в другой, исполняет ее и тут же забывает об этом, то никакой это не компилятор. Это интерпретатор. А у компиляторов (точнее, трансляторов) в роли "кеша" выступает программа в машинном коде (.exe), которую не надо каждый раз заново компилировать и тратить на это время.

    Danilka
    Что-то вроде:
    PHP:
    1. <?php foreach($items as $item) echo "<b>$item[name]</b>\r\n$item[sname]<br>\r\n";
    Это в простейшем случае. А как вариант - то же самое, но в виде опкодов PHP.
     
  10. Danilka

    Danilka Активный пользователь

    С нами с:
    8 ноя 2007
    Сообщения:
    192
    Симпатии:
    0
    А, то есть речь идёт фактически о подъёме на один уровень вверх.
    Откидывании шаблонизатора и обработке шаблона в последствии пыхом?

    Тогда может удобнее было бы передавать параметры не в шаблонизатор, а в какой-нибудь глобальный массив.
    Написать прогу, которая из удобного для дизайнеров шаблона генерила хтмлку с пхпшными вставками. (Не обязательно на пхп, можно даже просто под винду.)
    Ну кстати можно и на пыхе реализовать, если шаблоны в бд хранятся и через админку редактируются.
    А на сайт уже заливать пхпшные типо шаблоны, которые будут подгружаться?
    Я правильно мысль уловил?

    зы Как раз вчера натыкался на статью о том, что нахрен шаблоны, используем пых внутри хтмла.

    В результате получается, что мы компишируем шаблон не отдельным интерпретатором, а пыхом.
    НО! Чем же хуже, тот же блитз? Ведь он тоже на том же си написан. Заточен только под шаблоны, синтаксис более приемлемый и ничего перегенерять не нужно?
    Не спорю, конечно пых по быстрее будет в силу большей отточенности, ну а всё же?
     
  11. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Danilka
    На этот вопрос может ответить сам Блиц ;)

    [​IMG]

    Самая нижняя полоска (PHP mess) - это и есть результат работы подобного компилятора шаблонов для PHP. Почему Блиц медленнее? Видимо, парсер там хуже, чем парсер в PHP.
     
  12. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Danilka
    И еще раз, чтобы не путать понятия.
    Пых работает с шаблоном в два этапа: 1) превращая исходный шаблон в его более удобный для обработки эквивалент, назовем его псевдокодом, и 2) обрабатывая псевдокод и собирая из него и исходных данных готовую страницу.

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

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Danilka
    Чем он хуже, кроме того, что он медленнее и набор возможностей у него крайне ограничен? Да хотя бы тем, что для его поддержки нужно ставить дополнительное расширение для PHP. Не всякий хостер на это согласится.

    Кажется, мне пора отдохнуть от php.ru... :-D
     
  14. Danilka

    Danilka Активный пользователь

    С нами с:
    8 ноя 2007
    Сообщения:
    192
    Симпатии:
    0
    Резонно, я правда собираюсь пользовать дедик, но аргумент в пользу перспективы разрабатываемого кода весомый.

    Что ж вам так кажется-то? :(

    По поводу предыдущего поста: А так пхп странички кешатся в любом случае или нужно включить какую-нибудь функцию?