PHP
Коротко
Язык программирования для серверной части сайтов: выполняется на сервере, получает данные из базы и формирует HTML-страницы или ответы API. На нём написаны WordPress и 1С-Битрикс.
Что такое «PHP»
PHP начинался в 1994–1995 годах как набор скриптов Расмуса Лердорфа для личной домашней страницы — отсюда исходная расшифровка Personal Home Page. Сейчас название читается рекурсивно: PHP: Hypertext Preprocessor. Язык вырос вместе с вебом: на нём работают WordPress, 1С-Битрикс, Drupal, MediaWiki, фреймворки Laravel и Symfony.
Как PHP обрабатывает запрос
Браузер обращается к веб-серверу, например nginx. Тот видит, что запрошен PHP-скрипт, и передаёт задачу PHP-FPM — менеджеру процессов, который держит наготове несколько рабочих процессов. Процесс выполняет код, обращается к базе, собирает HTML и отдаёт его обратно. После ответа всё, что было в памяти, очищается: следующий запрос начинает с чистого листа. Такая модель проста и устойчива: ошибка в одном запросе не ломает остальные. Чтобы не разбирать исходники заново каждый раз, PHP хранит скомпилированный байт-код в OPcache.
Современный PHP на примере
Язык давно ушёл от образа «шаблонов с вставками кода». В нём есть строгие типы, перечисления, выражение match, свойства только для чтения:
declare(strict_types=1);
enum Status: string {
case New = 'new';
case Paid = 'paid';
}
function label(Status $s): string {
return match ($s) {
Status::New => 'Новый',
Status::Paid => 'Оплачен',
};
}
Перечисления появились в PHP 8.1. В седьмой версии язык заметно ускорился, в восьмой получил JIT-компилятор и именованные аргументы.
Версия PHP и CMS
Каждая ветка PHP поддерживается ограниченное время, после чего перестаёт получать исправления безопасности. Сайт на старой версии работает, но становится уязвимее и медленнее. При этом обновить PHP «одной кнопкой» не всегда можно: старые плагины, модули и собственные доработки могут использовать удалённые функции. Обычный порядок такой: проверить сайт на тестовой копии с новой версией, посмотреть журнал ошибок, исправить несовместимый код и только потом переключать боевой сервер. Такие задачи входят в PHP и backend-разработку.

