управляемый интерпретатор как шаблонизатор.

diamond_krnl

pure-php
управляемый интерпретатор как шаблонизатор.

Подниму всегда горячую тему - шаблонизаторы.

Дя себя я давно уяснил все шаблонизатры - мягко сказать зло, не нужный уровень.
Требуется отделаять логику от представления? Что же этому мешает? Берём и разделяем на 2 файла, в одном лигика работы БД,сессиями... в другом только представление при помощи инлайн-вставок аля <?=$args['var']?>.
Ни вижу чем {foreach...} может быть лучше <?foreach(...)?>
В представление пользуемся только логическими контрукциями, функиями строк ну и массивами если сильно надо, что еще больше для счастья шаблонизатора надо?

Тут канечно я открытия не сделал. :)

В таком подходе есть один минус - шаблоны редактировать может другой человек, при этом могут возникнуть ошибки, что не сильно страшно, более страшен вызов допустим exec, passthru, system... или же какойто закпрос к БД типа UPDATE users SET passwd='' или банальный exit.

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

Стоит ли подобного ожидать?
 

alexhemp

Новичок
diamond_krnl

Если рассуждать как Вы, то тогда нужно всем писать на ассемблере как минимум, ибо ЯВУ а тем паче процедуры и не дай бог ООП - сплошной вред.

Мое мнение - инструмент тут не причем. Используйте что вам надо.

В вашем же случае - что мешает вызывать iclude в ф-ции.

Например вот такая ф-ция:

template($filename, $param) {
extract($param);
include($filename);
}
 

SiMM

Новичок
> Если рассуждать как Вы, то тогда нужно всем писать на ассемблере как минимум, ибо ЯВУ а тем паче процедуры и не дай бог ООП - сплошной вред.
Чем pure PHP хуже Smarty? Если шаблоны делает не кто попало - то о безопасности можно не беспокоиться.

> В вашем же случае - что мешает вызывать iclude в ф-ции.
Мешает ему то, что если какой-то остолоп засунет в шаблоны system с деструктивными командами - он таки выполнится.
В принципе, я так понимаю, человеку могло бы помочь [m]features.safe-mode#ini.disable-functions[/m], если бы не одно НО...
 

diamond_krnl

pure-php
Gorath сомневаюсь что Savant безопасен, в том же Smarty регулярно находятся фокусы(баги) чтобы вызвать стороний код.

вообшем речь не о том, родной пхп-интерпритатор ахота пущупать. :)
 

tony2001

TeaM PHPClub
>в том же Smarty регулярно находятся фокусы(баги) чтобы вызвать стороний код.

можно пару примеров для общей эрудиции?
 

Gorath

Новичок
Gorath сомневаюсь что Savant безопасен
...
вообшем речь не о том, родной пхп-интерпритатор ахота пущупать. :)
Савант это и есть по сути продвинутый вариант вот этого
PHP:
template($filename, $param) {
extract($param);
include($filename);
}
в том же Smarty регулярно находятся фокусы(баги) чтобы вызвать стороний код.
С этого места поподробнее, пожалуйста..
 

alexhemp

Новичок
diamond_krnl
Gorath

Не провоцируйте флейм. 10 лет назад в форумах точно так-же клеймили ООП-подход.

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

Еще раз повторю - каждый делает как ему больше нравится.
Мне нравится прочитать данные из базы и распарсить их в шаблоне смарти. Это помогает мне зарабатывать больше денег меньшими усилиями. Точка.
 

Gorath

Новичок
Ну, во-первых, alexhemp, причем тут флейм?
Человек захотел "родной пхп-интерпритатор пущупать", вот он, способ сделать это качественно, с нормальными средствами контрацепции :)
 

SiMM

Новичок
> 10 лет назад в форумах точно так-же клеймили ООП-подход.
Не путайте мух с котлетами. А вот посмотреть на
>в том же Smarty регулярно находятся фокусы(баги) чтобы вызвать стороний код.
действительно было бы интересно.

> Еще раз повторю - каждый делает как ему больше нравится.
Ну так и делайте, как вам нравится - никто же не мешает. Ваша позиция ясна и понятна. Можно больше её не афишировать.
 
Сверху