# Контроллеры в MVC в PHP

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

Контроллеры представляют собой ООП классы. Один файл - это один класс и, соответственно, один контроллер. В нашем фреймворке контроллеры будут храниться в папке `project/controllers`.

Давайте потренируемся в создании контроллеров. Для разминки сделаем класс `PageController`, который будет управлять текстовыми страницами на нашем сайте.

Давайте сразу создадим файл для нашего контроллера. По правилам нашего фреймворка каждый класс должен хранится в файле с одноименным названием (вплоть до регистра). То есть наш класс `PageController` будет хранится в файле `PageController.php`. Создайте этот файл в папке `project/controllers`.

Сделаем в этом файле наш класс:

`<?php namespace Project\Controllers; use \Core\Controller; class PageController extends Controller { } ?>`

Как вы видите, наш класс принадлежит пространству имен `Project\Controllers`, следуя соглашению об автозагрузке файлов (то есть путь по папкам должен совпадать с пространством имен).

Кроме того, наш класс наследуется от класса `Core\Controller`, находящегося в ядре фреймворка. В этом не нужно искать глубокий смысл, а просто нужно принять как правило фреймворка. Вот это правило: все создаваемые вами контроллеры должны наследоваться от класса `Core\Controller`, чтобы все работало, как надо.

← →
↑