Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Виды шаблонизации (https://forum.antichat.xyz/showthread.php?t=106979)

Trieg 19.02.2009 18:37

имхо я пока не юзал нечего кроме хтемплате.. конкретно он меня не устраивает так как в нем нет возможности юзать такие конструкции
PHP код:

{foreach from=$articles item=article}
<
p>$article</p>
{/foreach} 

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

foreach($articles as $artice) {
    echo 
'<p>'.$article.'</p>';


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

cr0w 19.02.2009 18:51

Я что-то не уловил разницы между 2-м и четвертым видомом. Не знаю как там в Smarty, но в шаблонизаторе Джанго, к примеру, можно и то и другое делать.
Кстати: любой нормальный шаблонизатор должен отделять бизнес-логику в коде веб-приложения от логики представления в коде шаблона.
Шаблониазаторы нужны прежде всего для ускорения процесса разработки и сопровождения кода, если вам в этом плане они не помагают - так и не пользуйтесь ими (как nerezus).
Так же, я бы выделил еще один вид шаблонизаторов (например, breve), позволяющих избавиться от необходимости писать html-код вообще.

nerezus 19.02.2009 20:42

Цитата:

Раз уж на то пошло, тогда и С++ всего лишь шаблонизатор
Нет. Его нельзя встроить в текстовый файл так, чтобы вставки его исполнялись.

Цитата:

Куда проще хуярить CreateWindow в коде, чем разделить логику и представление...
Я предлагаю использовать MVC.
Да, необходим шаблонизатор.
В качестве шаблонизатора я юзаю PHP.

И могу объяснить почему. В скайпе. И ты согласишься со мной, т.к. я разобью твои доводы. Велкам ту скайп?

Только не надо путать мешанину типа
PHP код:

 foreach($articles as $artice) { 
    echo 
'<p>'.$article.'</p>'


и шаблон типа:
PHP код:

<? foreach ($articles as $article): ?>
<?=$article?>
<?
endforeach?>

А работу на публику типа "печально" можно говорить лишь тогда, когда знаешь не только свою точку зрения, но и понимаешь то, что говорит тебе в споре опонент. Иначе будет не круто =)

nerezus 19.02.2009 20:48

Цитата:

- так и не пользуйтесь ими (как nerezus).
Еще один.
Пользуюсь я ими, пользуюсь.
Пользовался тремя(Smarty, PHP, XSLT), больше всего понравился PHP.

И никакой логики приложения в шаблонах НЕТУ. Только логика отображения.

Zedi 19.02.2009 20:55

Мне кажется что nerezus прав, он ведь не пишет в шаблоне коды большие на пыхе, а ток переменные и конструкции, и тут есть много плюсов:
1.можно использовать весь пхп, все его функции, а не только что предусмотрели разработчики шаблонизатора
2.более безопасно, так как в шаблонизаторе могут быть дыры, а ты о них даже знать не будешь
ну и 3 это легкость восприятия, каждый поймет этот шаблон, ему не надо будет учить синтаксис шаблонизатора

groundhog 19.02.2009 20:57

Цитата:

Нет. Его нельзя встроить в текстовый файл так, чтобы вставки его исполнялись.
Директивы препроцессора.

Насчёт скайпа - времени нету переливать из пустого в порожнее, PHP-код, есть PHP-код, шаблонизатор - механизм абстракции над PHP-кодом. PHP-не может быть абстракцией над самим собой, следовательно называть его шаблонизатором некорректно. То, что ты называешь шаблонизатором есть "вставки PHP-кода в страницу".

И кстати:

PHP код:

foreach($articles as $artice) { 
    echo 
'<p>'.$article.'</p>'


и

PHP код:

<? foreach ($articles as $article): ?>
<?=$article?>
<?
endforeach?>

суть одно и то же - код на языке PHP.

Цитата:

А работу на публику типа "печально" можно говорить лишь тогда, когда знаешь не только свою точку зрения, но и понимаешь то, что говорит тебе в споре опонент. Иначе будет не круто =)
Если опонент путается в элементарнейших терминах, называет например жопу сиськами (только потому что она тоже округлой формы, бугорками и за неё можно подержаться), при этом несёт полную чушь и даже не пытается рассмотреть чужую точку зрения - считаю дальнейшую дискуссию пустой тратой времени. Ты для меня ничего нового не откроешь ни в плане знаний о PHP, ни в плане притянутых за уши "открытий".

nerezus 19.02.2009 21:06

Цитата:

шаблонизатор - механизм абстракции над PHP-кодом.
Ой, шаблонизаторы бывают только в пхп? А я то и не знал.
P.S. Тебя снова наебали.
P.P.S. Посмотри в википедии определение.

Цитата:

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

Цитата:

Ты для меня ничего нового не откроешь ни в плане знаний о PHP, ни в плане притянутых за уши "открытий".
Хех, жаль. А то бы я прочитал тебе лекцию о шаблонизаторах или пользе той же википедии.

groundhog 19.02.2009 21:12

Нер, ты как дитё, которое до хера глупостей сказало, и чтобы перед другими детьми не потерять авторитет начинает пороть чушь, и чем дальше это заходит, тем большую чушь ты начинаешь пороть. Я что сказал что они только в пхп бывают? Мы просто СЕЙЧАС говорим о php. И поверь, пока ты путаешься в терминах и их осмыслении, тебе рано лекции читать, ну разве только в школе в классах 7-8 (и мне кажется что у тебя такой опыт был), именно там такой уровень знаний.

mikhoni 19.02.2009 21:19

Имея не большой опыт написания сайтиков скажу.
шаблоны нужны НЕ на пхп по 3-м причинам
неудобно тем же верстальщикам (думайте о других)
небезопастно (ведь используется парсер пхп, а следовательно можно получить уязвимостей и пополнить библиотеку эксплойтов)
неуниверсально (а если проект переедет на ASP или Perl)

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

вот вопрос в скорости.... например vkontakte какой принцип используют? ведь там производительность очень важный фактор!

nerezus 19.02.2009 21:38

Цитата:

неудобно тем же верстальщикам (думайте о других)
Почему?
Чем <? хуже, чем {?
Ответь на этот вопрос.
Моему верстальщику пофигу на эту разницу.

Цитата:

небезопастно (ведь используется парсер пхп, а следовательно можно получить уязвимостей и пополнить библиотеку эксплойтов)
Верстальщик не делает шаблоны вида eval(@$_GET['xaka']). Чем небезопасней? В смарти тоже можно какашку вставить. и?

Цитата:

неуниверсально (а если проект переедет на ASP или Perl)
Зачем?


Время: 16:16