- 1
- 2
- 3
foreach ($templatedata as $templatedataname=>$templatedatavalue)
$$templatedataname = $templatedatavalue;
include($templatesDir.'/'.$file.'.tpl.php');
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+154
foreach ($templatedata as $templatedataname=>$templatedatavalue)
$$templatedataname = $templatedatavalue;
include($templatesDir.'/'.$file.'.tpl.php');
Велошаблонизатор, превращающий пары ключ-значение из массива в локальные переменные шаблона.
Шаблон - простой php-файл, в нужных местах выводящий полученные значения (реже с какой-либо логикой вроде обработки массива).
посудите сами, какая удобная обработка форм: параметры из формы сами попадают в переменные, потом над ними колдуют, и подставляют результат в шаблон страницы, получая готовую красивую страницу!
Но ведь пыхоприматы доигрались (не инициалируют и не проверяют) до того, что register_globals стало само по себе опасным - то есть, лечим не причину, а запрещаем следствия.
Если бы гарантировалось отсутствие конфликта имён параметров формы с именами переменных скрипта (например, разными префиксами) — это бы прокатило. Но в extract это только третий, необязательный, параметр. И поведение по умолчанию не такое. В PHP это правило — есть небезопасный простой и очевидный способ сделать что-то и необходимость отдельно поплясать и поработать головой, чтобы было как надо.
Поэтому, несмотря на фундаментальную убогость (те самые огрехи, которые тянутся до сих пор) языка и API, это все же неплохое срество (было) класса reporting services.
з.ы. Я все мечтаю, когда пхп будет потеснен со сцены "стандарт де-факто серверного программирования", как некогда пхп вытеснил cgi-perl, и хостеры (в т.ч. бесплатные) будут укомплектованы не пхп, а, скажем, java
ЧСХ, при консервативных настройках PHP чатик и не получится сделать
w?
Perl не ?
Думаю, лучше бы он был подобно питону - на выбор либо интерпретирующийся, либо компилирующийся в натив.
mod_perl охуителен по сравнению с говнищем, которое даже под фильтры не удалось заточить
Нужен xsl с человеческим простым синтаксисом. И чтобы сгенерировать невалидный xml или небезопасно обработать данные было бы так же трудно, как плохо отформатировать код в Питоне.
Чтобы любой Вася Пупкин мог написать свой хелловорд, но когда этот хелловорд вырастет до размеров большой системы, были и модульность, и структурность, и контроль данных, и обработка ошибок — без значительного усложнения. О кодировках и эскейпинге и говорить нечего — это должно обеспечиваться автоматически.
позвольте, вам нужен императивный ЯВУ или язык разметки?
> с возможностью включать часть логики в шаблоны
я вообще против такого
Если не включать часть логики в шаблоны, то придётся хардкодить шаблоны в код, что не лучше.
посмотрите на jstl
например, что бы не городить код в шаблоне, можно описать новый тег. Например, который, в зависимости от кол-ва выводил бы нужную словоформу. А логику уже бы реализовал обработчик тега на ЯВУ
Насчёт словоформ — то это как раз языковая конструкция. Изменили шаблон, переформулировали фразы — словоформы ушли и появились. Поэтому сам текст должен быть в шаблоне, а вот конструкция выбора — стандартная.