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

Духовность™

Продвинутый новичок
технологии бывают разные. PHP - вполне успешная технология. так что валить на PHP как минимум глупо.
 

Фанат

oncle terrible
Команда форума
слушайте, тема, по факту, получилась интересная.
Вот только нафига её загаживать, ведя абсолютно бессмысленные споры с топикстартером - для меня загадка.
 

fisher

накатила суть
не надо криворукость людей валить на технологию.

И создает кучу геморроя. Если бы вы знали, сколько я потратил времени на работу с блитзом и какой говнокод у меня получился в PHP.. я выложу в понедельник покажу. Прежде всего меня взбесило то, что ваш шаблонизатор способствует каши из логики представления и логики приложения, что противоречит всем современным представлениям о проектировании.
Мне кажется, вы просто не разобрались. Выкладывайте, обсудим, что из говнокода - ваше личное, а что - продиктовано ограничениями.
 

fisher

накатила суть
первый пост читайте. Вы его так и не прокомментировали.
А, невопрос. Во-первых вы теперь можете сделать то, что написали. А во-вторых, вы в корне не правы с "Идея MVC опрокинута в парадокс!". Вы не понимаете, что такое MVC. Вы думаете, что MVC означает тупо View=шаблон, логика View вся в шаблоне, а не в PHP. А MVC - это всего лишь принуждение к разграничению кода представления и прочего кода. Всё. Больше это ничего не несёт. То, что в шаблоне у вас нет языка - это не значит, что у вас не может быть MVC. Просто теперь у вас вместо View - собственно шаблон с "чистой" разметкой и PHP-класс View, который шаблоном управляет.
 
  • Like
Реакции: atv

С.

Продвинутый новичок
Можно ли уточнить, что за "PHP-класс View, который шаблоном управляет"? Класс написанный для данного конкретного шаблона или общий для всех? В последнем случае это скорее часть контролера, а не вью.
 

fixxxer

К.О.
Партнер клуба
И первое и второе в принципе :)

Ну напримре так это может выглядеть.

Контроллер страницы:

PHP:
$User = $this->getCurrentUser();
$Wall = new Wall($User);
$Wall->loadPage($this->getPager());

$View = new View;
$View
    ->combine(array(
        'User' => new View_User($User),
        'Wall' => new View_Wall($Wall),
    ))
    ->parseRecursively()
    ->renderTemplate('wall.tpl');
А та логика, о которой тут идет речь, переносится в view-классы.
 
Сверху