PHP: Разработка микрофреймворка
Теория: Сервер
Встроенный сервер PHP
В PHP есть встроенный веб-сервер для локальной разработки. Он удобен тем, что запускается одной командой и сразу позволяет проверить, как приложение отвечает на HTTP-запросы.
Для учебных задач это отличный старт: не нужно поднимать отдельный Nginx или Apache, можно сосредоточиться на логике приложения.
Режим раздачи файлов
Самый простой сценарий: сервер отдает файлы из директории как есть.
Здесь корнем сайта становится текущая директория. Если в каталоге есть index.html, сервер вернет его по запросу к /.
Проверить ответ можно через curl:
Терминал покажет HTML как текст. Браузер этот же ответ отрисует как страницу.
Режим единой точки входа
В реальных приложениях чаще используют одну точку входа, например index.php. Тогда разные URL не обязаны соответствовать файлам ��а диске: путь приходит в приложение, а вы сами решаете, что вернуть.
Пример запуска:
Внутри index.php можно прочитать $_SERVER['REQUEST_URI'] и сделать простой роутинг:
Что такое роутинг
Роутинг - это сопоставление URL и обработчика. Запрос пришел на /about - выполняется один код. Пришел на / - другой.
Сначала обычно делают простой вариант на if, а потом выносят маршруты в отдельную структуру или подключают роутер из фреймворка.
Откуда берутся данные запроса
В PHP есть суперглобальный массив $_SERVER. В нем лежат:
- Путь запроса (
REQUEST_URI). - Метод (
REQUEST_METHOD). - Заголовки (
HTTP_ACCEPT,HTTP_USER_AGENTи другие). - Служебные данные (
DOCUMENT_ROOT,REMOTE_ADDR,REMOTE_PORT).
На практике $_SERVER - базовая точка, откуда читают входящие данные, если вы работаете без фреймворка.
Как PHP формирует ответ
В базовом случае достаточно сделать echo, и строка попадет в тело HTTP-ответа.
Если заголовки явно не заданы, PHP отправит стандартные. Их можно посмотреть так:
В ответе вы увидите, какие заголовки сервер выставил по умолчанию.
Особенность модели выполнения
Для такого режима важно помнить: PHP-скрипт выполняется заново на каждом запросе. Приложение не держит ваше состояние в памяти между запросами само по себе.
Это упрощает запуск и изоляцию запросов, но инициализация кода происходит каждый раз заново. На первых этапах обучения это даже плюс: поведение приложения легче отслеживать.
Итог
На этом шаге нам важны три вещи:
- Уметь запускать встроенный сервер.
- Читать входящие данные из
$_SERVER. - Направлять запросы по URL через простой роутинг.
Этого уже достаточно, чтобы начать собирать свое веб-приложение и постепенно переходить к более устойчивой архитектуре.

