Активный view vs Пассивный view

skwee

Новичок
fixxxer
Получается что почти во всех случаях контроллер это тупо пару if-ов и вызов нужных команд и вью?
 

fixxxer

К.О.
Партнер клуба
Надо определиться с терминологией, я ж говорю. :) Веб приложения можно строить по-разному.

У меня то, что здесь называют контроллер (а я, окончательно запутавшись во всех терминах, назвал тупейше Page), выглядит в простейшем случае так примерно:
PHP:
class FooPage extends BasePage {

    public function actionDefault() {
        $FooModel = (new FooModel)->loadById($this->Request->Args->id);
        $this->getView()->bind('Foo', $FooModel);
        return $this->getView()->renderTemplate('foo.tpl');
    }

}
В случае наличия форм, обработки POST-а - побольше.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
У меня тоже примерно такой. Ну, + дефолтный вид.
Кстати, а вот это (new Object)->method() как давно работает???
 

fixxxer

К.О.
Партнер клуба
PHP 5.4. Это я для простоты понимания так написал, а так я люблю юзать late static binding и плодить constructor-методы типа FooModel::constructById(); в 5.4 это, в принципе, уже не нужно будет.
 

Krishna

Продался Java
skwee
Не покажу. Мне лень, помимо того, что есть дела поважнее чем отстаивать свои видения MVC на форуме, да и демонстрация кода только добавит вопросов.
Так что вставил свои 5 копеек - и хватит)
 

Krishna

Продался Java
fixxxer
Ох, Command по GoF это объект инкапсулирующий данные запроса. А контроллер - класс содержащий логику, которая таки да, принимает решение какие view и model дёргать согласно этим данным.
В Grails например буквально есть такой класс http://grails.org/doc/latest/guide/theWebLayer.html#commandObjects
Ну наверное и в пыховских фреймворках есть) Я, волею судьбы, современные пышные MVC фремворки так и не познал.
 

Krishna

Продался Java
флоппик

Важно понимать принципы, а не их конкретные реализации.
Просто на PHP-стадии карьеры я больше занимался интранет-проектами, чем интернет.
Собственно я в итоге и решил в Java уйти потому, что мне интереснее заниматься автоматизацией бизнеса и сложными моделями, чем всякими highload-глупостями ;)
 

Absinthe

жожо
Кстати, а вот это (new Object)->method() как давно работает???
Через месяц начнет работать. А повсеместно - через полгода(надеюсь, что к тому времени 5.3 объявят как неподдерживаемую)
 

fixxxer

К.О.
Партнер клуба
Krishna
А ведь неспроста в GoF хоть MVC и используется но так не названо. :D

Все, да, действительно хватит :D
 
Сверху