Я читал несколько статей о MVC и у меня было несколько вопросов, на которые я надеялся, что кто-то может помочь мне ответить.
Во-первых, если МОДЕЛЬ является представлением данных и средством, с помощью которого можно манипулировать этими данными, тогда для доступа к данным (DAO) с определенным уровнем абстракции с использованием общего интерфейса должно быть достаточно большая задача, не так ли?
Для дальнейшего уточнения этого вопроса, скажем, большая часть моей разработки выполняется с использованием MySQL в качестве основного механизма хранения моих данных, если я избегаю специфических функций вендора (например, UNIX_TIMESTAMP) - при построении моих операторов SQL и использовал абстрактный объект БД, имеющий общий интерфейс, перемещающийся между MySQL и, возможно, PostgreSQL, или MySQL и SQLite должны быть простым процессом.
Вот то, что я получаю в какой-то задаче, обрабатываются одним CONTROLLER - (т. Е. UserRegistration) и, скорее, создав MODEL для этой задачи, я могу получить экземпляр объекта db - (то есть DB :: getInstance ()) - затем делает необходимые вызовы db для ВСТАВКИ нового пользователя. Почему с такой простой задачей я должен создать новую МОДЕЛЬ ?
В некоторых примерах, которые я видел, создается MODEL , и в этом MODEL есть оператор SELECT, который выбирает x количество заказов из таблицы заказов и возвращает массив. Зачем это делать, если в CONTROLLER вы создаете еще один цикл для итерации по этому массиву и присвойте его VIEW ; ех. 1
ех. 1: foreach ($list as $order) { $this->view->set('order', $order); }
Полагаю, можно изменить возвращаемое значение, так что это возможно; ех. 2.
ех. 2: while ($order = $this->model->getOrders(10)) { $this->view->set('order', $order); }
Полагаю, мой аргумент заключается в том, что зачем создавать модель, когда вы можете просто сделать необходимые вызовы БД из вашего CONTROLLER , предполагая, что вы используете объект БД с общим интерфейсом для доступа к вашим данным, как я подозреваю большинство сайтов используют. Да, я не ожидаю, что это практично для всех задач, но опять же, когда большая часть того, что делается, достаточно проста, чтобы не обязательно требовать отдельной МОДЕЛИ .
В настоящее время пользователь делает запрос «www.mysite.com/Controller/action/args1/args2», фронт-контроллер (я называю это маршрутизатором) переходит к контроллеру (классу), и внутри этого контроллера вызывается определенное действие (метод), и оттуда создается соответствующий VIEW , а затем выводится.