vasa_c Насчёт обработки запроса - это схема целиком, и я считаю что этот пункт вообще лишний. Я лично прекрасно обхожусь MySQLi_result + while в коде Что касается ескейпа данных, я считаю что приложение должно их само обрабатывать. Делать в шаблоне вызовы дополнительные уже лишнее, только усложняет шаблон. Я помню когда irc.lv был ещё молод и шаблонизатор там был смарти. Меня бесило писать {$var|htmlsc|...|...}, а уж циклы... Лишнее это в шаблоне, там не должно быть ничего кроме foreach, echo, if,if else и if elseif else. Тогда такой шаблон поймёт даже тупой дизайнер и любой верстальщик.
Не из этой темы, но в тему Память, которую занимают данные в объекте mysqli при фетче освобождается, разве нет?
Тогда не понимаю, почему ты пытаешься избавиться от этих циклов в этой теме? Имхо, шаблонизатор должен эскейпить данные сам, а |htmlsc| писать не надо (надо писать как раз в обратном случае), но это частности.
vasa_c Развитие вперёд, не? То что я делаю щас так, не значит что я не хочу улучшить дальше и сделать себе меньше работы
Они минимальны, между тем читабельность кода даже лучше с несколькими циклами (идёт чёткое разделение что где) Я не против такого подхода, но считаю что на РНР в принципе надо забить на быстродействие и память (99% web проектов сидят с низкой посещаемостью, а 1% нужно оптимизировать в индивидуальном порядке) На мой взгляд смысо РНР это в первую очередь удобство для программистов, по этому если ты считаешь что такой подход удобнее, то вперёд и с песней, попробуй да поделись результатами, а за одно и быстродействие и расход памяти замерь... А вообще не моя ли гостевуха тебя на код натолкнула ? Там "шаблон" такого вида (разврат но...) PHP: <?while($row = mysql_fetch_assoc($posts)):?> <p><i><?=$row['date']?></i><br><?=bb_code($row['text'])?></p><hr> <?endwhile?>
Vladson Ну я как правило с маленькими сайтами дело не имею, да и мне просто сама мысль, что там 3 цикла вместо 1 не даёт покоя А про шаблон - да нет, сам как-то пришел к этому Правда я всё-же в шаблоны пока передаю массив уже с обработанными и эскейпнутыми данными. А в приложении обрабатываю ресурс, т.е. прослойка не делает эту работу за меня. Тем самым экономлю память и в ручную изничтожаю результаты запросов
Я тоже, но другими путями. На мой взгляд (я смотрю именно со стороны небольших сайтов, хотя как мне кажется к большим это тоже применимо, исключения действительно настоящий HighLoad) В базе на мой взгляд храниться должны данные (именно данные) а уже обработкой должен заниматься шаблон (т.е один шаблонизатор генерирует HTML другой XML третий отправкой на мыло, двадцать пятый экспортом в Excel) а основной скрипт (занимающийся логикой) должен только подготовить данные для использвания (именно исходные данные) по этому никаких обработок, там быть не должно
Ну вообще по идее это получается другой тип системы, где view управляет потоком выполнения программы. По сути view становится контроллером. Работал с такими системами, на самом деле удобно. Подход отличается конечно, надо привыкнуть. Ну и верстальщик 100% должен знать какой-то язык помимо самого HTML + CSS, т.к. шаблонизаторы там если и есть, то сложные, т.к. такую логику просто не сделаешь (по сути это почти программный код). Лично я имел дело с XML based шаблонизатором. Честно говоря было круто, реализация была на высоте (ну да, там разработчик был маньяк-перфекционист )