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 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments