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
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments