MVC - это просто :)

1.44K
.
AlkatraZ (19.05.2013 / 00:03)
Ну логично.
Просто я писал данный материал вот к чему.
MVC не так сложно, как этим пугают поклонники ООП, можно сделать все просто.
На примере JohnCMS я показал реально действующие и полноценно реа
а что, виеф это стандарт какой то ? почему обязательно надо следовать стандартам ?
плевать на всех, надо делать как удобнее думаю..
.
╭∩╮ (`-`) ╭∩╮
Fublin (19.05.2013 / 00:00)
AlkatraZ, смысл что то прикручивать лишнее когда итак все работает ?
Ну например, шаблонизатор очень удобно.
Когда для mobiCMS еще только начинали писать шаблонизатор, я уже годами привык к джону и немного трудновато было поворачивать мозги.
но когда наконец повернул и привык, осознаешь, что оказывается намного удобнее и для дизайнеров раскрываются большие возможности, не затрагивая кодеров.
Это один из важнейших доводов шаблонизации, то есть, отделения View от логики и данных.
.
╭∩╮ (`-`) ╭∩╮
Кстати, обратите внимание, что и в примерах, что я набросал выше и даже в JohnCMS, контроллер канонический и правильный, то есть "тонкий".
Он умеет только обрабатывать (маршрутизировать) параметры полученные от пользователя и передавать все это добро модели.
.
AlkatraZ (19.05.2013 / 00:07)
Ну например, шаблонизатор очень удобно.
Когда для mobiCMS еще только начинали писать шаблонизатор, я уже годами привык к джону и немного трудновато было поворачивать мозги.
но когда наконец повернул
Зато кроме меня у меня в фйлах никто не разберется..это как еще один столп безопасности..гг
.
AlkatraZ (18.05.2013 / 23:59)
1) Открываем наш JohnCMS, для примеру наш форум /forum/index.php
2) Смотрим в начале файла, где инклюдится все остальное:
Это не контроллер, гг. Это диспетчер
Т.е тот компонент, который в "нормальных" (rails-like) MVC системах, запускает контроллеры.
.
╭∩╮ (`-`) ╭∩╮
L!MP (19.05.2013 / 00:13)
Это не контроллер, гг. Это диспетчер
Т.е тот компонент, который в "нормальных" (rails-like) MVC системах, запускает контроллеры.
У нас просто исключено одно звено.
не забывай, что "rails-like" - это реализация на ООП, это немного другое, но суть от этого не меняется.

В ООП роутер умеет найти нужный ему класс, а уже метод этого класса подключает нужные модели или напрямую, или через диспетчер 9в случае сложной логики).

У нас же не ООП, роутер и классы не реализованы.
.
AlkatraZ (19.05.2013 / 00:09)
Он умеет только обрабатывать (маршрутизировать) параметры полученные от пользователя и передавать все это добро модели.
Тоесть есть что то еще ?
.
╭∩╮ (`-`) ╭∩╮
Fublin (19.05.2013 / 00:21)
Тоесть есть что то еще ?
Теоретически, в ПРАВИЛЬНО написанных контроллерах, они должны быть "тонкими", то есть бизнес логика (CRUD) должна содержаться в модели.
Посему, контроллер по идее должен обрабатывать только всякие act= mod= и тому подобное и подключать нужные нам модели и представления.

Но на практике, конкретные реализации могут быть весьма разнымию
.
╭∩╮ (`-`) ╭∩╮
L!MP, дваай вспомним каноны MVC.
Еще раз процитируем викиПедию:
Основная цель применения этой концепции состоит в разделении бизнес-логики (модели) от её визуализации (представления, вида).

В моем примере данная цель полностью выполняется.
В Джоне конечно нет View и цель не достигнута, но если написать шаблонизатор и выпилить из файлов всякие echo то цель будет достигнута.
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
L!MP, кстати, зачитай википедию про пассивные модели
Наиболее частые ошибки
Начинающие программисты
(особенно в веб-программировании, где аббревиатура MVC стала популярна) очень часто трактуют архитектурную модель MVC как пассивную модель MVC. В этом случае модель выступает исключительно совокупностью функций для доступа к данным, а контроллер содержит бизнес-логику. В результате код моделей по факту является средством получения данных из СУБД, а контроллер представляет собой типичный модуль, наполненный бизнес-логикой, или скрипт в терминологии веб-программирования.


Но они конечно тут немного переврали, присовокупив всех тех, кто использует пассивную модель к "начинающим", но здравая мысль тоже есть.
Всего: 45