[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Шаблонизатор.
Страницы: 1, 2
bestxp
killer8080
Цитата
искусственные шаблонизаторы всегда будут медленнее нативного (кеширование не в счет) никакой пользы от них нет, только лишняя нагрузка серверу, потому что верстальщику вроде проще было написать чуть чуть короче код.

Цитата
какое то нелепое оправдание, для изобретения интерпретатора, внутри интерпретатора.

Blitz почти не отличается по скорости от нативного
По сути нагрузки нету никакой, шаблон он и лежит такой какой есть, в результате работы он "компилируется" в нативный и используется как нативный php код, потом только сгенерированное и используется, то есть потери нету, а удобство оценимо, то же наследование в шаблонах, или блоки с виджетами, уже далеко не костыли, а заниматься копипастой уже признак плохого приложения.

Не все сразу могут отделить логику от представления, не говоря уже отделение бизнес логики

Но поиск в каше и написание этой каши жуть как напрягает. Притом как напрягает. Притом простота шаблонизатора заставляет данные готовить и строить приложение так что бы работало проще, а не усложнять, тем что я там могу еще пару циклов вставить да вызвать пару функций, относящихся к инфраструктуре, а не отображению. И еще много всего.

Тут уже холивар native php vs template engine , что лучше , а что нет решается внутри определенного проекта. но никак не спорами на форуме что лучше, а что хуже

PS Если ты принципы SOLID считаешь костылем, то увы заканчивай с программированием, это не твоё.
SlavaFr
Цитата (bestxp @ 27.02.2013 - 08:58)
Ты не прав, шаблонизаторы заставляют нас избавляться от желания в шаблоне делать обращения к бд и прочее что они делать не должны, так сказать заставляют следовать правилу Single Point of Truth принципов SOLID

из смарти: http://www.smarty.net/docsv2/en/language.function.php.tpl

{php}
global $foo, $bar;
if($foo == $bar){
echo 'This will be sent to browser';
}
// assign a variable to Smarty
$this->assign('varX','Toffee');
{/php}

Получается, что в смом крутом шаблонизаторе не отняли возможности наломать дров.
Мне кажется, что просто лучше поговорить с людьми и на пальцах обьяснить им "Single Point of Truth " принцип, чем навязывать им шаблонизатор.

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
SlavaFr
Цитата (SoMeOnE @ 27.02.2013 - 10:17)
Цитата (Игорь_Vasinsky @ 27.02.2013 - 09:13)

вся логика в контроллере

А почему не в моделе?)

по тому, что модель создана для хранения и поиска информации.


_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
bestxp
Цитата (SlavaFr @ 27.02.2013 - 14:39)
Цитата (SoMeOnE @ 27.02.2013 - 10:17)
Цитата (Игорь_Vasinsky @ 27.02.2013 - 09:13)

вся логика в контроллере

А почему не в моделе?)

по тому, что модель создана для хранения и поиска информации.

Модель не создана для поиска информации, модель и есть логика, за хранение и поиск информации отвечает хранилище, а это инфраструктура
Игорь_Vasinsky
не спорьте) у меня своя архитектура

контроллер - работа с БД - выборки и т.д.
модель - инклудит контроллер и после нужные шаблоны (+ тут я могу и не инклудить, а вставить микро шаблонизатор для замены нужный метки - на нужные данные (и использованием буфера и strtr())
)
шаблон - какркас HTML с данными из контроллера -
index.php - точка входа и роутер

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
IncSW
Благодарствую за сей небольшой холивар. =)
Наверное пока что склонюсь к нативным шаблонам для своих извращений.
SoMeOnE
Цитата (SlavaFr @ 27.02.2013 - 10:39)
Цитата (SoMeOnE @ 27.02.2013 - 10:17)
Цитата (Игорь_Vasinsky @ 27.02.2013 - 09:13)

вся логика в контроллере

А почему не в моделе?)

по тому, что модель создана для хранения и поиска информации.

Надо же. Я думал за это бд отвечает.
Логика должна выполняться в модели. Контроллер это связывающее звено. Что принять, кому что передать. Из названия даже читается все.

Выборка из бд может осуществляться из контролера в случае использования orm.
По другому чаще просто и не получится. Хотя в кохане и возможно.
А так чистый sql в модели тоже нормально.
SlavaFr
SoMeOnE в модели кроются все основные методы для комуникации с программой, делайТо(), дайЭто() ,запомниТо();
Но именно в контроллере дефинируется то, что он хотел бы добится от модели, так что программная логика и вызовы методов модели находится именно в контроллере.
Или мы говорим о разных вещах?

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
SoMeOnE
Цитата (SlavaFr @ 27.02.2013 - 12:45)
SoMeOnE в модели кроются все основные методы для комуникации с программой, делайТо(), дайЭто() ,запомниТо();
Но именно в контроллере дефинируется то, что он хотел бы добится от модели, так что программная логика и вызовы методов модели находится именно в контроллере.
Или мы говорим о разных вещах?

Я так понимаю мы о разной логике говорим.
Я хочу сказать, что контроллер как образующее звено, следит какой запрос пришел и что требуется выполнить. В зависимости от этого он посылает данные в модель, Там если нужна на основе данных проводится выборка из базы, различные вычисления и тд. Отдается допустим(массив) всего нужного, что сформировалось. После контроллер принимает это и отправляет виду. Тот все это ставит в нужные ячейки.

Контроллер управляет процессом.
Вид представляет данные (визуализация)
Модель занимается моделированием. т.е логикой программы. Ее основной частью.

bestxp
Цитата
Модель занимается моделированием. т.е логикой программы. Ее основной частью.

Все верно, за исключением одного, модель тут в кавычках уже
то есть, разделение на сущности, коллекции, хранилища, агрегаты и сервисы, всё это часть модели, и как раз логика и есть взаимодействие их.
и тд и тп
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.