Model-View-Controller (MVC) – Шаблон проектирования

MVC, «Модель-Представление-Контроллер»

Схема разделения данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента: модель, представление и контроллер — таким образом, что модификация каждого компонента может осуществляться независимо

  • Модель (Model) предоставляет данные и реагирует на команды контроллера, изменяя своё состояние.
  • Представление (View) отвечает за отображение данных модели пользователю, реагируя на изменения модели.
  • Контроллер (Controller) интерпретирует действия пользователя, оповещая модель о необходимости изменений.

Пожалуй самый популярный шаблон проектирования, все современные фреймворки (Symfony, Laravel и тд.) реализуют его. Чем же это удобнее обычного написания сайта? Раньше совсем давно до прихода фреймворков, большинство разработчиков писали код прямо в главной странице сайта index.php, в итоге все это превращалось в огромную кашу, которую сложно разобрать, там были и запросы к базе, там же происходила какая-то бизнес логика и валидировались данные, а так же происходил вывод данных на экран. В общем это был ужас.

С появлением объектов в PHP и современных методик разработки все встало на свои места, данные переместились в модели (сущности), работа с этими данными происходить стала в контроллерах, ну а вывод осуществлялся в темплейтах (Templates), по нашему – шаблонах. Их еще называют вьюхи (от слова View).

Благодаря этому порядку стало писать сайты и сложные интернет-приложения гораздо проще, так же в дальнейшем вы заметите, что после освоения этого шаблона проектирования вы с легкостью разберетесь и с написанием Front-end приложений, к примеру на Angular, так как TypeScript очень похож на PHP, а Angular очень похож на Symfony и те же юнит-тесты и все остальное очень похоже друг на друга.

Применение этого паттерна стало постулатом для каждого программиста, если вы не используете его – то это значит, что вы пока еще начинающий программист. Ведь согласитесь, гораздо лучше когда каждый отвечает за свое маленькое дело, как говорится: “разделяй и влавствуй!”.

Популярные MVC фреймворки

Пожалуй самыми популярными MVC фреймворками на PHP являются Symfony и Laravel, для фронта же я предпочитаю использовать Angular. Везде используется принцип MVC, скажу честно, по началу вам покажется сложным, но когда вы соберете простой Tutorial (demo приложение) и поюзаете его, то я уверен вы быстро разберетесь, не забывайте при разработке использовать методику TDD, это поможет вам понять как работает фреймворк и избижать появления багов.

  • Symfony это фреймворк для серьезных проектов и профессионалов, он дает вам практически безграничные возможности и обеспечивает высокую производительность и быстродействие, сайт на нем быстро не напишешь, придется потратить время на конфигурирование, но зато у Symfony есть масса плюсов, один из них это Doctrine, которые мы обязательно с вами разберем отдельно.
  • Laravel – на нем можно быстро написать сайт или API, в принципе получается довольно неплохо, но есть некоторые проблемы в быстродействием из-за Eloquent – который реализует паттерн Active Record.
  • Angular – очень хорошо взаимодействует с Symfony и позволяет быстро сделать фронт вашего приложения, благодаря модульной структуре фреймворка приложения на нем легко расширяются.

Сегодня, чтобы ваш проект был конкурентноспособен и мог выжить в интернет пространстве вы просто обязаны использовать фреймворки для его написания.

Подпишитесь на рассылку новых статей

Подпишитесь на рассылку свежих статей и присоединяйтесь к 7 остальным подписчикам.