can3p (can3p) wrote,
can3p
can3p

  • Music:

php + f**king Smarty

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

Так вот, если использовать Smarty, то получается такой алгоритм: забираем все данные от запроса. Потом в цикле к каждой строке результата применяем нужные функции и пишем опять в этот же массив. А потом еще инициализируем эту переменную в Smarty($smarty->assign()), а потом еще этот шаблонизатор будет сам проходить эти данные в цикле.
Итого получаем:
а) делаем большой массив
б)применяем функции
в)один раз копируем в Smarty
г)Smarty перебирает массив

На php можно записать
while($row = $object->get_another_row()){
//do something with row and output it
}

Если делать со Smarty, то этот код будет относиться только к первым двум шагам.

Таким образом со Smarty будет потеря скорости, хотя это без учёта кеширования. А если делать только с помощью php, то логика и представление смешаются, а это то, от чего я хочу уйти.

Пока писал пост, подумал, что кеширование может дать плюс, компенсирующий все минусы. Пойду, проверю.
Tags: php
Subscribe

  • Из прочитанного. Выпуск 60

    Добавлю новый тег, т.к. какое-то количество книг я добавил себе в список на прочтение после прослушивания подкастов Юзефоыич на медузе. 1) Midnight…

  • Ссылки и указатели

    Наткнулся на один осмысленный пример применения ссылок вместо указателей. TLDR: указатели могут быть пустыми, а ссылки - нет. Так что ссылка в…

  • Субботник

    Ну или не совсем. Каждый год раздражаюсь, но в этом просто решил принять как факт. Каждый сентябрь в Амстердаме - это месяц раскопок. В промышленном…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments