Как создается представление в «классическом» веб-MVC?

В "классическом" веб-MVC - поправьте меня, если я ошибаюсь:

  • контроллер передает данные запроса, полученный от «пользователя» (будь то браузер, консоль и т. д.), на уровень модели (состоящий из объектов домена, мапперов, репозиториев, сервисов и т. д.),
  • слой модели обрабатывает его и возвращает некоторый данные результатов,
  • представление - как специализированный класс (ы) - обрабатывает данные результатов и отправляет / отображает его «пользователю».

Я бы хотел спросить:

  • Есть ли контроллер создать представление?
  • Или есть контроллер получает представление как зависимость?
  • Или контроллер и представление создан полностью отдельно находятся на уровне фронт-контроллера (скажем, в index.php)?

Спасибо.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
175
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Ваши определения MVC в целом верны, вот ответ на ваш вопрос:

Controllers are not responsible for rendering the interface, nor for presentation logic. Controllers do not display anything. Instead, each controller's method deals with different user's request. It extracts the data from said request and passes it to model layer and the associated view.

Decisions about what and how to display are in purview of views. Views contain the presentation logic in MVC pattern. In the context of web applications, views create the response. They can compose a from from multiple templates or just send a single HTTP header.

Controllers can signal the associated view by passing some specific values of the request to that view, but most of the decisions in the view are based on information that the view requested from different services in the model layer.

A Controller's methods are based on what type of requests a user can send. For example in a authentication form it might be: GET /login and/or POST /login.

Источник: Контроллеры, терешко


Классическая правильная структура классов MVC:

Classic MVC class structure

Простое определение:

Model. The model manages the behavior and data of the application domain, responds to requests for information about its state (usually from the view), and responds to instructions to change state (usually from the controller).

View. The view manages the display of information.

Controller. The controller interprets the mouse and keyboard inputs from the user, informing the model and/or the view to change as appropriate.

Источник: Документы Microsoft

Дополнительные ресурсы:(только полезные)

Внешний

  1. Пояснение к MVC [шаблоны проектирования информатики]
  2. Создание настраиваемого контроллера и представления в CodeIgniter [наглядный пример]
  3. Определения Codeproject MVC: легкий | расширенный

Внутренний

Извините, я забыл принять ответ. Еще раз спасибо.

dakis 16.07.2018 15:07

Контроллеры - это точка входа в MVC, вызовы контроллеров в модель и проверка модели, отображающая отображение, например, magento (mvc).

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