Что такое жизненный цикл приложения на PHP?

«Что такое жизненный цикл приложения на PHP?» — вопрос из категории PHP Core, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Жизненный цикл PHP-приложения — это последовательность этапов обработки одного HTTP-запроса. Он начинается с получения запроса и заканчивается отправкой ответа, после чего все ресурсы освобождаются. Ключевая особенность PHP — его stateless-модель: каждый запрос обрабатывается изолированно, без сохранения состояния в памяти между запросами (если явно не используются сессии, кэш или внешнее хранилище).

Основные этапы:

  1. Получение запроса: Веб-сервер (Nginx, Apache) принимает HTTP-запрос и передаёт его PHP-обработчику (например, PHP-FPM или модулю mod_php).
  2. Загрузка и парсинг: Интерпретатор PHP загружает указанный скрипт, парсит его и компилирует в байт-код (opcodes).
  3. Выполнение: PHP выполняет скомпилированный байт-код. На этом этапе инициализируются скрипты, подключаются зависимости, выполняется бизнес-логика.
  4. Формирование ответа: Результат выполнения (HTML, JSON и т.д.) передаётся веб-серверу.
  5. Отправка ответа и завершение: Веб-сервер отправляет ответ клиенту. После этого PHP освобождает всю память, выделенную для этого запроса, уничтожает переменные и завершает работу.

Пример типичного скрипта, иллюстрирующего этапы:

<?php
// Этап инициализации: загрузка конфигурации и зависимостей
require 'vendor/autoload.php';
require 'config/database.php';

// Этап выполнения: основная логика
$router = new Router();
$controller = $router->resolve($_SERVER['REQUEST_URI']);
$response = $controller->handle($_REQUEST);

// Этап вывода
header('Content-Type: application/json');
echo json_encode($response);

// Этап завершения произойдёт автоматически — все объекты будут уничтожены