Шаблонизация на чистом php. Как лучше реализовать? Имеет ли смысл?

Karantir

Новичок
Шаблонизация на чистом php. Как лучше реализовать? Имеет ли смысл?

Привет.
Есть надобность сделать на битриксе достаточно ресурсоемкий сервис. Поскольку битрикс все таки быстродействием не блещет, очень не хотелось бы тянуть для шаблонизации еще и смарти (при всей его неприхотливости). Пока что наилучшим решением кажется писать шаблоны на чистом php без каких либо надстроек. В связи с этим есть два вопроса: оправдан ли такой выбор, не аукнется ли в будущем проблемами? И второе: разработчики битрикс предлагают оформлять шаблоны следующим образом:
PHP:
<?if($username);?>
  <p>Hello<?=$username?></p>
<?endif;?>
Мне кажется что такой способ более громоздкий и более медленный чем такой
PHP:
<?php
if($username){
  print "<p>Hello $username</p>";
}
?>
Есть ли на этот счет официальные мнения или метрики (на зенде ничего внятного не нашел)?
 

HraKK

Мудак
Команда форума
Читай про PHP Native.

Попробуй также Quicky.
 

partizan

Новичок
Re: Шаблонизация на чистом php. Как лучше реализовать? Имеет ли смысл?

Автор оригинала: Karantir
PHP:
<?php
if($username){
  print "<p>Hello $username</p>";
}
?>
Это уже шаблоном никак не назовеш.
Сам юзаю что-то вроде 1-го способа
 

HraKK

Мудак
Команда форума
Karantir
Когда кажется крестится надо. 1 способ будет быстрее 2. И 2 способ - венегрет а не шаблонизатор, за который руки надо обламывать.
 

Karantir

Новичок
Гравицапа
Я не тестировал еще, просто предполагаю, что интерпретатору проще обработать один кусок кода за раз чем по кусочкам. Думал может у кого есть уже подобные тесты...

HraKK
Спасибо за советы.
Когда кажется крестится надо
Я был уверен что кто нибудь обязательно так скажет .)
И все таки 1 хоть и винегрет но все же быстрее?
 

Фанат

oncle terrible
Команда форума
ну, насчет сравнения скорости мы говорить НЕ БУДЕМ.
а вот хтмл внутри строк пхп - это жесть.

Karantir, ты правда считаешь свой "второй вариант" шаблоном?
 

Marquis

Новичок
Karantir
и кому же на обработку передается кусок html кода? что то я тут даже как то растерялся. :)
 

Alexandre

PHPПенсионер
я работат в одной конторе, там высоконагруженные сайты оформляли, как советовали специ битрикса....
 

Духовность™

Продвинутый новичок
2 вариант говоришь? А что будет с гораздо более большим HTML-кодом? представь. Вот пример более-менее грамотной шаблонизации. Это - шаблон.
Если это всё запихивать в строковое представление PHP - будет извращение.

1 способ рулит. При грамотном использовании никакие шаблонизаторы не нужны в принципе. Главное правило нужно соблюдать - использовать только управляющие структуры и специально написанные для шаблона функции, типа библиотека. Т.е. никакие PHP-функции в шаблоне использовать нельзя.
 

Фанат

oncle terrible
Команда форума
а по-моему, самописные, как раз, гораздо хуже встроенных.
и лучше бы и тех и других избгать.
все их можно применить в контроллере шаблона. и отдать в шаблон только переменные.
 

Духовность™

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

PHP:
<b class="class1"><?=$name?></b>
и хотим использовать функцию tpl_make_name($name)

которая как раз занимается тем, что обрамляет $name тегами b с классом class1.

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

Фанат

oncle terrible
Команда форума
ВСЕ, ГДЕ УПОТРЕБЛЯЮТСЯ HTML ТЕГИ - относится к шаблонизации.

такие вот "хелперы" - это ужасно. это не хелперы, а медвежьеуслугеры
поддерживать такой проект будет просто нереальной радостью.

за что, блин, боролись - на то и напоролись. Хотели весь хтмл снести в одно место и отделить от коду - и сделали специальный файл с кодом.
 

Духовность™

Продвинутый новичок
это не хелперы, а медвежьеуслугеры
:)

*****, видишь внизу и сверху форума надпись

PHP Club форумы: > Вопросы по программированию на РНР > Шаблонизация на чистом php. Как лучше реализовать? Имеет ли смысл?
без использования того, о чем я писал, это придётся 2 раза повторить в шаблоне. А если мы генерим строку навигации? Куча кода будет, котрый придётся тупо каждый раз заново переписывать.

за что, блин, боролись
нет, нет, нет! :)

я ещё раз повторюсь - мы не выносим HTML в программу, в PHP код, мы просто создаём дополнительный функционал для упрощения шаблонизации.

-~{}~ 07.08.07 11:32:

поддерживать такой проект будет просто нереальной радостью
отчасти ты прав, да.
 

Фанат

oncle terrible
Команда форума
чтобы избежать кучи кода, в программировании изобрели циклы
 
Это значит "дурной тон". Так как фича эта уже депрекейтед, тоесть оставлена для обратной совместимости, но в следующих версиях будет удалена. Писать правильно <? echo $item; ?>.
Лично мне встроенный шаблонизатор очень даже импонирует, единственное что я использую в связке с ним -- класс со статическими методами (просто синтаксический сахар :) ). Например:
Код:
[url]http://phpclub.ru/paste/index.php?show=1843[/url]
конечно, это пример, и не надо задавать вопросы, не проще ли писать просто <? echo $title; ?> вместо длинного слова Template и т.п. Это всего лишь пример, помните ;). Но глобальных переменных я не использую и в действительности. Тем более в такой класс легко встроить средства буферизации вывода и прочее и прочее, что бы не повторять одинаковые кусочки шаблона и т.п.
 
Сверху