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-разработку.

Обновлено:

Все термины раздела «Backend»

Что будем искать? Например,Продвижение