🧱 Суть
PHP-приложение обычно состоит из набора файлов, каждый из которых отвечает за свою задачу: обработку запросов, бизнес-логику, работу с базой данных и отображение данных.
При каждом HTTP-запросе PHP запускает приложение, выполняет код и возвращает ответ клиенту.
📦 Проблема
1. Непонятно, что происходит после открытия страницы
Кажется, что PHP-приложение постоянно работает, хотя на самом деле оно запускается заново для каждого запроса.
2. Сложно понять назначение файлов проекта
Без понимания структуры трудно ориентироваться в кодовой базе и находить нужную логику.
✅ Решение
Разделить приложение на отдельные слои и понимать последовательность обработки запроса.
💻 Код
Типичная структура проекта
project/
├── public/ # Точка входа (index.php)
├── app/ # Бизнес-логика
├── controllers/ # Контроллеры
├── models/ # Работа с данными
├── views/ # Шаблоны
├── routes/ # Маршруты
├── config/ # Конфигурация
├── vendor/ # Composer-зависимости
└── storage/ # Логи, кэш, временные файлыЖизненный цикл запроса
Клиент
↓
Веб-сервер (Apache / Nginx)
↓
public/index.php
↓
Автозагрузка Composer
↓
Инициализация приложения
↓
Маршрутизация
↓
Контроллер
↓
Модель / База данных
↓
Формирование ответа
↓
БраузерРоль основных компонентов
| Компонент | Назначение |
|---|---|
public/index.php | Точка входа в приложение |
routes | Определяют, какой код выполнить для URL |
controllers | Обрабатывают запросы |
models | Работают с данными и БД |
views | Формируют HTML-ответ |
vendor | Подключают сторонние библиотеки |
🎯 Вывод
- каждое обращение к сайту создаёт новый PHP-процесс
- выполнение начинается с
public/index.php - запрос проходит через маршруты, контроллеры и модели
- после формирования ответа выполнение PHP завершается
- понимание жизненного цикла помогает быстрее разбираться в любом PHP-фреймворке