HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>В этой статье пойдет разговор про модель<strong>MVC</strong>- что это, каковы принципы и особенности работы. Что такое Контроллер, Модель, Представление в MVC? В качестве примера будет написано приложение на PHP с архитектурой, основанной на MVC.</p>
1 <p>В этой статье пойдет разговор про модель<strong>MVC</strong>- что это, каковы принципы и особенности работы. Что такое Контроллер, Модель, Представление в MVC? В качестве примера будет написано приложение на PHP с архитектурой, основанной на MVC.</p>
2 <p>Вышеупомянутая аббревиатура расшифровывается как<strong>Model - View - Controller</strong>. Речь идет о шаблоне проектирования, который построен на основании принципа сохранения представления данных. Согласно этому принципу, данные хранятся отдельно от методов, взаимодействующих с этими данными. Есть и другие, более простые определения модели MVC, позволяющие понять, что это: - шаблон программирования, при использовании которого логика приложения делится на 3 части; - паттерн (pattern) проектирования приложений, включающий в себя ряд более мелких шаблонов.</p>
2 <p>Вышеупомянутая аббревиатура расшифровывается как<strong>Model - View - Controller</strong>. Речь идет о шаблоне проектирования, который построен на основании принципа сохранения представления данных. Согласно этому принципу, данные хранятся отдельно от методов, взаимодействующих с этими данными. Есть и другие, более простые определения модели MVC, позволяющие понять, что это: - шаблон программирования, при использовании которого логика приложения делится на 3 части; - паттерн (pattern) проектирования приложений, включающий в себя ряд более мелких шаблонов.</p>
3 - <p>Также можно отметить важный момент: по сути, MVC - это не паттерн проектирования, как таковой, а, скорее, набор архитектурных принципов и идей, необходимых для построения сложных систем, оснащенных пользовательским интерфейсом. Чтобы каждый раз при употреблении этой аббреиатуры не писать длинное словосочетание про набор архитектурных идей, принято называть MVC паттерном/шаблоном/моделью/схемой.</p>
3 + <p>Также можно отметить важный момент: по сути, MVC - это не паттерн проектирования, как таковой, а, скорее, набор архитектурных принципов и идей, необходимых для построения сложных систем, оснащенных пользовательским интерфейсом. Чтобы каждый раз при употреблении этой аббревиатуры не писать длинное словосочетание про набор архитектурных идей, принято называть MVC паттерном/шаблоном/моделью/схемой.</p>
4 <p>Сегодня эта модель программной архитектуры широко применяется web-разработчиками. Она дает возможность точно разграничивать задачи и повторно использовать код. Также эта схема развивает модульные системы и позволяет быстро удалять либо добавлять функционал.</p>
4 <p>Сегодня эта модель программной архитектуры широко применяется web-разработчиками. Она дает возможность точно разграничивать задачи и повторно использовать код. Также эта схема развивает модульные системы и позволяет быстро удалять либо добавлять функционал.</p>
5 <h3>Основные составляющие: что такое Контроллер, Модель, Представление в MVC?</h3>
5 <h3>Основные составляющие: что такое Контроллер, Модель, Представление в MVC?</h3>
6 <p>Выделяют 3 основных составляющих - Модель, Представление и Контроллер. Как это выглядит, можно посмотреть на соответствующей диаграмме:</p>
6 <p>Выделяют 3 основных составляющих - Модель, Представление и Контроллер. Как это выглядит, можно посмотреть на соответствующей диаграмме:</p>
7 <p>На изображении можно увидеть структуру одностороннего потока данных, а также пути его следования между разными компонентами, плюс взаимодействие между этими компонентами.</p>
7 <p>На изображении можно увидеть структуру одностороннего потока данных, а также пути его следования между разными компонентами, плюс взаимодействие между этими компонентами.</p>
8 <p>Теперь стоит рассмотреть все по порядку.</p>
8 <p>Теперь стоит рассмотреть все по порядку.</p>
9 <h4>Модель</h4>
9 <h4>Модель</h4>
10 <p>Модель - постоянное хранилище данных, которые применяются во всей структуре. Она обеспечивает доступ к информации для просмотра, записи, отбора. Также Model называют<strong>мостом между View и Controller</strong>.</p>
10 <p>Модель - постоянное хранилище данных, которые применяются во всей структуре. Она обеспечивает доступ к информации для просмотра, записи, отбора. Также Model называют<strong>мостом между View и Controller</strong>.</p>
11 <p>Что важно отметить? У Model отсутствует информация о том, что случается с данными после их передачи на Controller и View. Главное, за что отвечает компонент, называемый Model, - обработка данных в хранилище, а также их поиск и подготовка для передачи другим составляющим.</p>
11 <p>Что важно отметить? У Model отсутствует информация о том, что случается с данными после их передачи на Controller и View. Главное, за что отвечает компонент, называемый Model, - обработка данных в хранилище, а также их поиск и подготовка для передачи другим составляющим.</p>
12 <p>Есть основания говорить, что Model выступает в роли<strong>привратника</strong>, который дежурит возле хранилища данных и не задает лишних вопросов, однако принимает все запросы, которые к нему поступают. Очень часто именно Модель является наиболее сложной частью MVC паттерна. Также утверждается, что Model представляет собой вершину общей структуры, ведь без нее обеспечить связь между Представлением и Контроллером нереально.</p>
12 <p>Есть основания говорить, что Model выступает в роли<strong>привратника</strong>, который дежурит возле хранилища данных и не задает лишних вопросов, однако принимает все запросы, которые к нему поступают. Очень часто именно Модель является наиболее сложной частью MVC паттерна. Также утверждается, что Model представляет собой вершину общей структуры, ведь без нее обеспечить связь между Представлением и Контроллером нереально.</p>
13 <h4>Представление</h4>
13 <h4>Представление</h4>
14 <p>Благодаря этому компоненту, данным, которые запрашиваются у "Модели", задается вид их вывода. Если упомянуть web-приложение, то во View генерируется и отображается код HTML. Также Представление выполняет перехват действий юзера, после чего осуществляется передача этого действия Controller’у. Характерный пример - кнопка, которая генерируется Представлением. Когда пользователь нажмет кнопку, действие запускается уже в Controller’е.</p>
14 <p>Благодаря этому компоненту, данным, которые запрашиваются у "Модели", задается вид их вывода. Если упомянуть web-приложение, то во View генерируется и отображается код HTML. Также Представление выполняет перехват действий юзера, после чего осуществляется передача этого действия Controller’у. Характерный пример - кнопка, которая генерируется Представлением. Когда пользователь нажмет кнопку, действие запускается уже в Controller’е.</p>
15 <p>Важный момент: информация не передается в Controller напрямую (между View и Контроллером нет прямой связи - соединение происходит посредством Модели).</p>
15 <p>Важный момент: информация не передается в Controller напрямую (между View и Контроллером нет прямой связи - соединение происходит посредством Модели).</p>
16 <h4>Контроллер</h4>
16 <h4>Контроллер</h4>
17 <p>Что же такое Контроллер в MVC? Его задача - обработать информацию, которую вводит пользователь, а также обновить Model. Именно в этой части схемы происходит взаимодействие с пользователем. Можно назвать Controller<strong>сборщиком информации</strong>. После выполнения этой задачи, Контроллер передает информацию в Model, где и происходит последующая организация хранения. Другой логики, кроме сбора входящей информации, у него нет. Причем Controller подключается лишь к одной Model и к одному View. То есть речь идет о системе с односторонним потоком информацией, где в точках обмена есть один вход и один выход.</p>
17 <p>Что же такое Контроллер в MVC? Его задача - обработать информацию, которую вводит пользователь, а также обновить Model. Именно в этой части схемы происходит взаимодействие с пользователем. Можно назвать Controller<strong>сборщиком информации</strong>. После выполнения этой задачи, Контроллер передает информацию в Model, где и происходит последующая организация хранения. Другой логики, кроме сбора входящей информации, у него нет. Причем Controller подключается лишь к одной Model и к одному View. То есть речь идет о системе с односторонним потоком информацией, где в точках обмена есть один вход и один выход.</p>
18 <p>Получение задачи на выполнение происходит только после взаимодействия пользователя с Представлением. Причем Контроллер - это не шлюз, и одна из ошибок разработчиков - присваивать ему задачи и функции, относящиеся к Представлению. Другая ошибка - наделять Controllers функциями, отвечающими лишь за обработку и передачу информации из Model во View. Если же вспомнить структуру, можно прийти к выводу, что такое взаимодействие возможно лишь между Models и Views.</p>
18 <p>Получение задачи на выполнение происходит только после взаимодействия пользователя с Представлением. Причем Контроллер - это не шлюз, и одна из ошибок разработчиков - присваивать ему задачи и функции, относящиеся к Представлению. Другая ошибка - наделять Controllers функциями, отвечающими лишь за обработку и передачу информации из Model во View. Если же вспомнить структуру, можно прийти к выводу, что такое взаимодействие возможно лишь между Models и Views.</p>
19 <p><strong>Модель MVC кратко</strong>- что это: - шаблон программирования, который может разделять логику приложения на 3 части: • Model - получает данные с помощью Контроллера и выполняет нужные операции с последующей передачей данных в Представление; • View. Получает информацию от Модели, а потом выводит ее для пользователя; • Controller. Выполняет обработку действий пользователя и проверку полученных данных с последующей передачей их Модели.</p>
19 <p><strong>Модель MVC кратко</strong>- что это: - шаблон программирования, который может разделять логику приложения на 3 части: • Model - получает данные с помощью Контроллера и выполняет нужные операции с последующей передачей данных в Представление; • View. Получает информацию от Модели, а потом выводит ее для пользователя; • Controller. Выполняет обработку действий пользователя и проверку полученных данных с последующей передачей их Модели.</p>
20 <h2>MVC в PHP</h2>
20 <h2>MVC в PHP</h2>
21 <p>Рассматривая создание и разработку паттернов MVC, можно написать небольшое PHP web-приложение с соответствующей архитектурой. Больших трудностей это не вызовет.</p>
21 <p>Рассматривая создание и разработку паттернов MVC, можно написать небольшое PHP web-приложение с соответствующей архитектурой. Больших трудностей это не вызовет.</p>
22 <p>Начать следует с каркаса:</p>
22 <p>Начать следует с каркаса:</p>
23 <p>Что же, проект с основными классами для каждой части паттерна уже есть. Следующий этап разработки - настройка взаимосвязи между частями:</p>
23 <p>Что же, проект с основными классами для каждой части паттерна уже есть. Следующий этап разработки - настройка взаимосвязи между частями:</p>
24 <p>В примере PHP MVC, указанном выше, отсутствует специфический функционал для Контроллера, так как в приложении не определены пользовательские взаимодействия. Зато Представление содержит весь функционал, ведь пример предназначен для демонстрации концепции разработки.</p>
24 <p>В примере PHP MVC, указанном выше, отсутствует специфический функционал для Контроллера, так как в приложении не определены пользовательские взаимодействия. Зато Представление содержит весь функционал, ведь пример предназначен для демонстрации концепции разработки.</p>
25 <p>Теперь следует расширить пример, чтобы показать, каким образом добавляется функционал Контроллера - для этого надо добавить взаимодействия:</p>
25 <p>Теперь следует расширить пример, чтобы показать, каким образом добавляется функционал Контроллера - для этого надо добавить взаимодействия:</p>
26 <p>Код был расширен базовым функционалом. Теперь настройка взаимодействий между компонентами выглядит так:</p>
26 <p>Код был расширен базовым функционалом. Теперь настройка взаимодействий между компонентами выглядит так:</p>
27 <p>Если запустить код, при нажатии на ссылку можно будет увидеть строку для изменения данных.</p>
27 <p>Если запустить код, при нажатии на ссылку можно будет увидеть строку для изменения данных.</p>
28 <h3>Выводы</h3>
28 <h3>Выводы</h3>
29 <p>В статье была рассмотрена базовая теория модели MVC (что это, как работает). Также был представлен пример простого приложения на PHP, отвечающего принципам MVC.</p>
29 <p>В статье была рассмотрена базовая теория модели MVC (что это, как работает). Также был представлен пример простого приложения на PHP, отвечающего принципам MVC.</p>
30 <p><em>Источник - https://www.sitepoint.com/the-mvc-pattern-and-php-1/.</em></p>
30 <p><em>Источник - https://www.sitepoint.com/the-mvc-pattern-and-php-1/.</em></p>
31  
31