Каждый php-разработчик на своем пути к карьере сталкивается с популярным архитектурным шаблоном MVC. Чаще всего эта встреча происходит в начале приключения с объектно-ориентированным программированием. Поэтому стоит упомянуть то, что мы называем архитектурным паттерном.
Архитектурные шаблоны описывают структуру информационной системы, элементы, их отношения и объем функциональных возможностей. Архитектурные шаблоны часто путают с шаблонами проектирования, но они применяются к общему дизайну, а не к связи между классами и объектами. Таким образом, размышляя об архитектурном шаблоне, мы должны рассматривать его как концепцию, которая управляет всей системой, а не описывает способ решения элементарных проблем. Один из самых известных шаблонов — это популярный шаблон в Интернете (MVC). Создание сайтов облегчается за счет готовых наборов классов и функций, называемых « фреймворком ». Самые популярные PHP-фреймворки основаны на MVC. Название шаблона — это аббревиатура от английского слова Model View Controller, означающего отдельные, но взаимодействующие элементы.
Модель чаще всего касается логики и обработки данных. Веб-разработка сделала реляционные объектно-ориентированные базы данных SQL местом, где чаще всего хранятся данные для нужд веб-сайтов. Таким образом, Модель представляет собой набор классов, описывающих эти данные, а точнее отношения между отдельными полями и таблицами в базе данных SQL. В большинстве вариантов MVC модель не заботится о согласованности и правильности данных, она отвечает за получение и отправку информации в хранилище. Обычно к набору классов модели добавляется класс, описывающий, как подключиться к базе данных, использующей шаблон проектирования Singleton.
Представление — это элемент шаблона, отвечающий за отображение, обычно это линейный php-код, встроенный в html-документ, называемый шаблоном. Часто используется в системном представлении шаблонов, например, Smarty или это не ограничивается только HTML-кодом. Как и модель, представление не заботится о согласованности данных. Чаще всего это последний элемент, выполняемый системой, и его результат направляется непосредственно в браузер пользователя Интернета. Данные для представления обслуживаются косвенно из базы данных через модель и контроллер. Существуют разные типы MVC, которые различаются способом взаимодействия. Стоит отметить, что одно представление, например, страница со списком товаров в корзине, имеет несколько версий. Это особенно полезный вариант, когда наш веб-сайт должен отображаться на устройствах с различными характеристиками, например, на планшете, принтере или стандартном ПК.
Контроллер или контроллер — это сердце шаблона, набор объектов, а часто и классы, отвечающие в первую очередь за взаимодействие пользователя с системой. Как следует из названия, контроллер отвечает за создание объектов из классов модели в зависимости от выбора пользователя. В контроллер программисты часто помещают код, отвечающий за проверку целостности данных, а также реализуют алгоритмы проверки входных данных на предмет угроз, потому что создание веб-сайтов — это многопрофильная область, и в последние годы большое значение придается элементам, отвечающим за безопасность. Контроллер также обрабатывает исключения и загружает соответствующие файлы шаблонов в зависимости от ситуации.
У шаблона MVC есть много преимуществ, одним из которых, несомненно, является сознательно реализованная объектно-ориентированная парадигма. Он заботится о герметизации индивидуальных занятий, что облегчает работу в коллективе людей разной специализации и уровня подготовки. Паттерн MVC присутствует в подавляющем большинстве крупных проектов, таких как хорошо известный и ценимый во всем мире фреймворк Zend или cakePHP или Symfony, созданный крупными сообществами и фондами . Создание веб-приложений — это область, за которую шаблон MVC значительно выходит. Классические приложения, предоставляемые пользователям в виде двоичного кода, также используют правильно реализованный MVC.
Модель представления контроллера — не единственный шаблон, который использует почти каждое более продвинутое веб-приложение. Существуют и другие архитектурные схемы, часто взаимодействующие друг с другом в рамках одной системы, например, SOA, то есть сервисная архитектура или популярный P2P.
Станьте первым!