MVC для простого приложения

Я работал над простым калькулятором платежей, который у меня работал правильно через интерфейс html и сервер php. HTML передает пользовательские данные как переменные в PHP через вызовы AJAX, а PHP возвращает результат на страницу html. Теперь, когда он функционирует должным образом, я пытаюсь понять, как именно преобразовать это в шаблон MVC. Насколько я понимаю, html - это компонент представления, PHP, который содержит всю логику для расчета, - это модель, но я действительно не уверен, что будет происходить в контроллере? Если задача контроллера заключается в координации между представлением и моделью, то должен ли я передавать свои входные данные «контроллеру», который затем передает их на php, а затем передает результат обратно по тому же маршруту? Я понимаю эту закономерность в принципе, но в данном случае это кажется посторонним. Я изучал несколько фреймворков MVC (.NET, Laravel), но действительно хочу получить более фундаментальное понимание, не создавая все строительные леса. Любые советы приветствуются!

Вам следует проверить аналогию с рестораном MVC. Это простейшее объяснение.

Akshay Gohil 11.06.2018 09:36

Это очень хорошее объяснение. Я не совсем понимаю, что если у меня нет базы данных, есть ли у меня «Модель» как таковая и мой PHP, который на самом деле содержит мою логику приложения, а затем мой контроллер или «официант», если использовать аналогию с рестораном?

reCursed 11.06.2018 09:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
246
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Архитектурный шаблон MVC действительно не предназначен для «простых приложений». Как правило, не стоит прилагать все усилия, чтобы добавить всю эту сложность. Это потому, что, по сути, «MVC» - это просто набор ограничений для различных уровней, которые вы добавляете, когда большая кодовая база становится трудной для содержать.

Это не волшебная волшебная пыль, которой можно посыпать свой проект.

A для вашего "понимания" ... ну ... просмотры действительно не заканчиваются как "html". На нем есть немного более длинный пост здесь, но версия TL; DR: шаблоны - это то, что действительно обрабатывает html, а представления - это то, что управляет / собирает / заполняет шаблоны.

Что касается ваш главный вопрос: в обязанности контроллеров входит изменение состояния слой модели. Вот и все.

Это не имеет ничего общего с лесами (это инструмент быстрой разработки) и ничего не координирует. Как я сказал выше: MVC касается ограничений. На уровне пользовательского интерфейса контроллеры используют ввод пользователя для изменения состояния модели, а представления представляют текущее состояние модели.

P.S. «Маршрутизация» на самом деле не связана с MVC, потому что это, по сути, деталь в абстракции HTTP. Вы используете его только для того, чтобы решить, в какую часть слоя пользовательского интерфейса «тыкать».

На самом деле это очень полезно, спасибо. MVC возникает так часто, что создается впечатление, что это «правильный» способ делать что-то независимо от объема того, что вы создаете.

reCursed 11.06.2018 10:22

Это миф, который распространяют различные рамки. В небольших приложениях достаточно просто применить элементарный разделение проблем, и все будет в порядке.

tereško 11.06.2018 10:24

Я считаю, что в данном случае это удалось. HTML не содержит логики для вычислений, он просто передает вводимые пользователем данные в php. Нет перекрытия. Я не понимаю, какую пользу принесет добавление дополнительного уровня сложности.

reCursed 11.06.2018 10:33

Другие вопросы по теме