Шаблоны и php

Если говорить о php как о языке, который предназначен для придания динамичности Вашему сайту, то его вполне можно назвать языком шаблонов. С возможностью использования управляющих структур и огромного количества готовых расширений. И поэтому я не особо понимаю, когда начинають изобретать велосипед, создавая template engine(в грубом переводе движок шаблонов) на php, придумывая при этом какой-то свой язык представления этих самых шаблонов(или используя общепринятые решения).Конечно, это убыстряет процесс создания дизайна динамических страниц, но довольно сильно бьет по производительности системы(интерпретатор php выполняет код интерпретации еще одного языка, пусть даже и очень простого).

Один из самых распостраненных способов построения такого интерпретатора - преобразование кода шаблона в php код посредством регулярных выражений и его выполнение интерпретатором php(такой способ используется в движке форумов phpBB). Конечно, можно немного уменьшить нагрузку и разработать систему кеширования преобразованного кода, но решение все равно довольно спорное - переписав все шаблоны на php Вы избавитесь от целого ряда проблем(правда, не от всех конечно) и получите систему с более высоким быстродействием.

Посты по теме:

  • Пока что ничего не написано

5 Comments

  1. akella

    хех - для меня(верстальщика) это звучит как - нафига делать внешние ЦСС файлы - пишите все прямо в ХТМЛ - быстрее будет :) Я утрирую - но думаю философия разделения всего и вся(дизайн инфо ПХП(а там еще кой нить МВЦ…)) - очень хорошая штука.
    Разве нет?

  2. tolix

    Насчет разделения согласен полностью - только вот должна быть серединка между эффективностью и удобностью. Когда шаблоны на php не дают требуемой производительности - это уже нехорошо.

  3. DenD

    Выскажу и свое мнение насчет “templates engine”.
    Все-таки вещь до абсурда глупая.
    С единственным плюсом этого подхода - повышенной скоростью прикрутки шаблонов к скриптам - готов долго и яростно спорить. Это еще не факт что ускоряют они. Для кого ускоряют? Кто так решил я не знаю.
    А уж если вас угораздило заниматься правкой шаблонов, написанных для какого-либо “template engine”, да еще и не ваших шаблонов, то это может превратится в настоящий головняк.

    Написание и поддержка шаблонов, созданных лишь средствами php станет намного проще, если соблюсти ряд простых условий:
    1. ВСЮ логику получения и преобразования данных по возможности убрать из шаблонов. Пусть скрипты занимаются подготовкой данных. Ассоциативные массивы - “самое то” для представления данных, которые после будут переданы шаблону.
    2. В свою очередь, из скриптов вынести какие-либо выводы в браузер.
    3. Постараться ограничится в шаблонах следующими операциями:
    a) include
    b) вывод значений переменных посредством <?=$var_name?>
    c) if(), for()
    d) извлечение данных из тех самых массивов посредством foreach()
    e) несложные математические операции, конструкции вроде isset(), и т.д.

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

    P.S. коммент получился довольно сумбурный, но уж не обесудте. Как-нибудь сяду, систематизирую знания и накопленный опыт и выдам статью по этому поводу.

  4. Kitson

    Шаблоны. Они удобны для распределенной работы. Дизайнер код знать не обязан, даже несложный.
    Если кто-то пробовал править osCommerce тот обоими руками будет ЗА шаблоны :)

  5. DeMx

    Один раз воспользуешься шаблоном и потом уже тошнит, когда увидишь проект на чистом PHP - из собственного опыта знаю.

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

    Kitson
    Я пробовал и больше не хочу. :)

Leave a Reply