# Подход MVC для разработки сайтов на PHP

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

Для решения таких проблем был придуман специальный подход под названием MVC. Эта аббревиатура расшифровывается следующим образом: M - модель (model), V - представление (view), С - контроллер (controller). При этом модель отвечает за получение данных, представление - за вывод этих данных на экран в нужном виде, а контроллер представляет собой связующее звено между моделью и представлением.

На основе MVC созданы все PHP фреймворки. Фреймворк представляет собой заготовку проекта, упрощающую разработку сайта PHP программистом, избавляя его от многих рутинных операций. Кроме того, фреймворк представляет собой набор правил, которым необходимо следовать при разработке. Следование этим правилам вносит четкую структуру в проект, обеспечивая легкую поддержку созданного кода, а также позволяя легко брать новых людей в проект. Одним из таких правил и является подход MVC.

## Как работает MVC

Рассмотрим, как работает сайт на MVC. Все начинается с того, что пользователь вбивает адрес в адресную строку (чаще всего перейдя по ссылке). В этот момент контроллер разбирается, что именно хотел получить пользователь и просит модель дать соответствующие данные. Модель дает контроллеру данные. Контроллер получает эти данные и отправляет их в представление. Представление показывает данные в оформленном нужным образом виде.

При этом у нас получается разделение труда: контроллер не знает, как получить данные - он просто просит об этом модель, представление не знает, откуда приходят данные - оно просто их отображает.

Уверен, что пока это все звучит не понятно, поэтому специально для вас я сделал учебный мини фреймворк, использующий MVC подход. Для начала я научу вас пользоваться этим фреймворком, чтобы вы поняли, как именно следует разрабатывать на MVC. А затем вы сами, следуя моим указаниям, напишите такой же фреймворк на ООП.

## Уставновка фреймворка

Для начала фреймворк необходимо скачать по следующей ссылке: скачать фреймворк. Распакуйте файлы фреймворка в какую-нибудь папку сервера, например, в `framework.local`. В PhpMyAdmin создайте базу данных для вашего фреймворка. Затем перейдите в файл `/project/config/connection.php` и настройте там подключение к базе данных. Для проверки работы перейдите по следующему адресу: `http://framework.local/hello/`. Там вы должны увидеть приветственное сообщение. Если вы его видите - значит все работает.

## Структура папок

После распаковки фреймворка у вас будут две папки: папка `core` и папка `project`.

В папке `core` размещается написанное мною ядро нашего фреймворка. Под ядром понимается код, который обеспечивает функционал, которым вы будете пользоваться при разработке. При использовании фреймворка в эту папку заглядывать вам, как правило, не будет нужно. В папке `project` будут размещаться файлы вашего проекта: контроллеры, модели, представления, а также настройки фреймворка. Именно в этой папке и будет вестись вся работа по разработке сайта.

←→
↑