Справочник PHP
Современный PHP
Справочник PHP. Базовые статьи о том, как PHP выполняется, как читать синтаксис и где проходят границы между слабой динамикой языка и современной типизацией. Раздел про встроенные структуры и расширения, которые часто встречаются в реальном PHP-коде без фреймворковой оболочки.
52Lessons
8Modules
RUEncyclopedia
Contents
1
Ядро языка
1
Версии PHP и режимы выполнения
Справочная статья о поддерживаемых ветках PHP, SAPI, `php.ini`, CLI/FPM/CGI и том, почему lifecycle версии влияет на безопасность и совместимость. Связана с [Миграции между версиями PHP](course://article/Миграции между версиями PHP), [CLI и встроенный сервер](course://article/CLI и встроенный сервер) и [PHP-FPM, RoadRunner и долгоживущие воркеры](course://article/PHP-FPM, RoadRunner и долгоживущие воркеры).
2
Синтаксис, теги и подключение файлов
Разбор `<?php`, инструкций, комментариев, `include`, `require`, `require_once`, `declare` и типичных ловушек файлов со смешанным HTML/PHP. Смежно с [HTTP-заголовки, ответы и редиректы](course://article/HTTP-заголовки, ответы и редиректы).
3
Типы и strict_types
Определяет scalar types, `null`, `mixed`, `never`, union/intersection/DNF types, nullable-синтаксис, coercion и реальную область действия `declare(strict_types=1)`. Ссылается на [Массивы как ordered map](course://article/Массивы как ordered map) и [PHPDoc, generics и статический анализ](course://article/PHPDoc, generics и статический анализ).
4
Операторы и управляющие конструкции
Энциклопедическая статья про выражения, precedence, comparison, null coalescing, spaceship, `if`, `match`, `switch`, циклы и особенности `foreach`. Полезна вместе с [Массивы как ordered map](course://article/Массивы как ordered map).
5
Функции, замыкания и callable
Описывает user-defined и built-in функции, scope, параметры, named arguments, variadic, return types, references, anonymous functions, arrow functions и first-class callable syntax. Связана с [PHPDoc, generics и статический анализ](course://article/PHPDoc, generics и статический анализ).
6
Ошибки, исключения и Throwable
Разбирает error levels, warnings, `Error`, `Exception`, `Throwable`, `try/catch/finally`, custom exceptions и отличие ошибок рантайма от доменных исключений. Связана с [Транзакции и режимы ошибок PDO](course://article/Транзакции и режимы ошибок PDO) и [Очереди, фоновые задачи и воркеры](course://article/Очереди, фоновые задачи и воркеры).
7
Генераторы и Fiber
Справка по `yield`, `Generator`, ленивой итерации и Fiber как full-stack interruptible functions для async-экосистемы PHP. Смежно с [SPL, итераторы и коллекции](course://article/SPL, итераторы и коллекции) и [Асинхронный PHP и event loop](course://article/Асинхронный PHP и event loop).
2
Данные и стандартная библиотека
8
Массивы как ordered map
Полная статья о PHP array как ordered map: int/string keys, key casting, overwrite, append, destructuring, `array_*` функции и отличие list от associative array. Связана с [Операторы и управляющие конструкции](course://article/Операторы и управляющие конструкции).
9
Строки, UTF-8 и mbstring
Объясняет байтовую природу PHP strings, interpolation, heredoc/nowdoc, string functions, UTF-8, `mb_*`, encoding conversion и ошибки при работе с кириллицей. Смежно с [XSS, экранирование вывода и шаблоны](course://article/XSS, экранирование вывода и шаблоны).
10
Дата и время
Справка по `DateTime`, `DateTimeImmutable`, time zones, intervals, periods, timestamps, formatting/parsing и типичным багам с локалью и DST. Связана с [JSON, сериализация и форматы данных](course://article/JSON, сериализация и форматы данных).
11
JSON, сериализация и форматы данных
Описывает `json_encode`, `json_decode`, flags, exceptions, numeric/string edge cases, PHP serialization и границы безопасного обмена данными. Связана с [Ошибки, исключения и Throwable](course://article/Ошибки, исключения и Throwable).
12
Файловая система и stream wrappers
Статья о путях, permissions, `file_get_contents`, `fopen`, `SplFileObject`, `php://input`, stream contexts и безопасной работе с пользовательскими путями. Смежно с [Загрузка файлов](course://article/Загрузка файлов).
13
SPL, итераторы и коллекции
Обзор SPL interfaces/classes, `Iterator`, `IteratorAggregate`, `ArrayObject`, `SplFileInfo`, heaps/queues и случаев, где они удобнее обычного массива. Связана с [Генераторы и Fiber](course://article/Генераторы и Fiber).
3
Объектная модель
14
Классы, объекты и видимость
Покрывает class/object basics, properties, methods, constructors, destructors, visibility, static, constants, readonly и сравнение объектов. Связана с [Наследование, интерфейсы и трейты](course://article/Наследование, интерфейсы и трейты).
15
Наследование, интерфейсы и трейты
Справка по `extends`, `implements`, abstract/final, variance, traits, конфликтам методов, composition vs inheritance и контрактам. Смежно с [PSR-1, PSR-12 и стиль кода](course://article/PSR-1, PSR-12 и стиль кода).
16
Неймспейсы и use
Объясняет namespace declarations, fully qualified names, `use`, aliases для classes/functions/constants и типичные конфликты имен. Связана с [Autoloading и PSR-4](course://article/Autoloading и PSR-4).
17
Autoloading и PSR-4
Статья про `spl_autoload_register`, Composer autoload, PSR-4 namespace prefix, base directory, case-sensitive class names и `dump-autoload`. Связана с [Composer, Packagist и composer.json](course://article/Composer, Packagist и composer.json).
18
Enum в PHP
Описывает unit enums, backed enums, cases, methods, interfaces, `from`/`tryFrom`, serialization и отличие enum от набора constants. Связана с [Типы и strict_types](course://article/Типы и strict_types).
19
Атрибуты и Reflection
Справка по PHP 8 attributes, target/repeatable rules, Reflection API, metadata-driven code и ограничениям по сравнению с комментариями PHPDoc. Смежно с [PHPDoc, generics и статический анализ](course://article/PHPDoc, generics и статический анализ).
4
Веб-слой и HTTP
20
SAPI и суперглобалы
Объясняет роль SAPI, request lifecycle, `$_SERVER`, `$_GET`, `$_POST`, `$_REQUEST`, `$_FILES`, `$_COOKIE`, `$_SESSION` и почему superglobals стоит изолировать. Связана с [PSR-7, middleware и HTTP-клиенты](course://article/PSR-7, middleware и HTTP-клиенты).
21
GET, POST и фильтрация ввода
Справка по query string, form data, `filter_input`, validation vs sanitization, empty/missing values и безопасному преобразованию user input. Смежно с [CSRF и state-changing запросы](course://article/CSRF и state-changing запросы).
22
Куки и сессии
Разбирает `setcookie`, session ID, session storage, fixation, regeneration, `Secure`, `HttpOnly`, `SameSite` и границы надежности PHP sessions. Связана с [Конфигурация безопасности PHP](course://article/Конфигурация безопасности PHP).
23
Загрузка файлов
Описывает `$_FILES`, upload errors, limits, MIME/type validation, temporary files, storage outside web root и риски executable uploads. Связана с [Файловая система и stream wrappers](course://article/Файловая система и stream wrappers).
24
HTTP-заголовки, ответы и редиректы
Статья про `header`, `http_response_code`, redirects, cache headers, content type, headers already sent и корректное завершение после redirect. Связана с [Синтаксис, теги и подключение файлов](course://article/Синтаксис, теги и подключение файлов).
25
PSR-7, middleware и HTTP-клиенты
Объясняет HTTP messages, request/response interfaces, streams, uploaded files, middleware-подход и связь PSR-7 с PSR-15/PSR-18. Смежно с [SAPI и суперглобалы](course://article/SAPI и суперглобалы) и [Slim и Mezzio](course://article/Slim и Mezzio).
26
CLI и встроенный сервер
Справка по CLI SAPI, arguments, stdin/stdout/stderr, exit codes, `php -S`, отличиям от веб-SAPI и локальной отладке без Apache/Nginx. Связана с [Версии PHP и режимы выполнения](course://article/Версии PHP и режимы выполнения).
5
Базы данных и безопасность
27
PDO и подключение к базе
Статья о DSN, drivers, connection options, persistent connections, fetch modes и базовой модели PDO/PDOStatement. Связана с [Prepared statements и SQL injection](course://article/Prepared statements и SQL injection).
28
Prepared statements и SQL injection
Покрывает `prepare`, named/positional placeholders, `execute`, bind by value/reference, ограничения placeholders и защиту от SQL injection. Смежно с [GET, POST и фильтрация ввода](course://article/GET, POST и фильтрация ввода).
29
Транзакции и режимы ошибок PDO
Описывает `beginTransaction`, `commit`, `rollBack`, implicit commits, autocommit, `ERRMODE_EXCEPTION` и обработку database errors. Связана с [Ошибки, исключения и Throwable](course://article/Ошибки, исключения и Throwable).
30
Пароли, хэши и криптография
Справка по `password_hash`, `password_verify`, `password_needs_rehash`, алгоритмам, salts, timing, `random_bytes` и тому, что не стоит писать самому. Связана с [Куки и сессии](course://article/Куки и сессии).
31
XSS, экранирование вывода и шаблоны
Разбирает XSS, context-aware output encoding, `htmlspecialchars`, HTML attributes, URLs, JS/CSS contexts и опасность самодельной sanitization. Смежно с [Строки, UTF-8 и mbstring](course://article/Строки, UTF-8 и mbstring).
32
CSRF и state-changing запросы
Описывает CSRF, unsafe methods, synchronizer tokens, double-submit cookie pattern, SameSite, Origin/Referer checks и почему GET не должен менять состояние. Связана с [GET, POST и фильтрация ввода](course://article/GET, POST и фильтрация ввода).
33
Конфигурация безопасности PHP
Справка по `display_errors`, `error_reporting`, `expose_php`, upload limits, session settings, `allow_url_include`, document root и production-настройкам. Связана с [Версии PHP и режимы выполнения](course://article/Версии PHP и режимы выполнения).
6
Экосистема и качество кода
34
Composer, Packagist и composer.json
Описывает dependency management, `require`, `require-dev`, package names, repositories, Packagist, scripts и autoload-секцию `composer.json`. Связана с [Autoloading и PSR-4](course://article/Autoloading и PSR-4).
35
composer.lock, install/update и audit
Справка о разнице `install` и `update`, lock-файле, reproducible installs, audit, platform requirements, `--no-dev` и production autoload optimization. Связана с [Миграции между версиями PHP](course://article/Миграции между версиями PHP).
36
PSR-1, PSR-12 и стиль кода
Разбирает PHP-FIG, смысл PSR, базовый стандарт, современный coding style, 4 spaces, file layout, braces, visibility и границы автоматического форматирования. Смежно с [Неймспейсы и use](course://article/Неймспейсы и use).
37
PHPDoc, generics и статический анализ
Описывает docblocks, array shapes, template/generic annotations, `mixed`, baseline, уровни строгости PHPStan/Psalm и связь PHPDoc с native types. Связана с [Типы и strict_types](course://article/Типы и strict_types).
38
PHPUnit, моки и стабы
Энциклопедическая статья о PHPUnit как инструменте, test cases, assertions, fixtures, data providers, mocks/stubs и месте тестов в CI без учебных заданий. Связана с [Ошибки, исключения и Throwable](course://article/Ошибки, исключения и Throwable).
39
CI, линтеры и автоматические проверки
Справка по типичному pipeline PHP-проекта: Composer scripts, PHPStan/Psalm, PHPUnit, PHP-CS-Fixer или PHP_CodeSniffer, security audit и checks перед merge. Связана с [composer.lock, install/update и audit](course://article/composer.lock, install/update и audit).
40
Миграции между версиями PHP
Справка по migration guides, deprecations, backward incompatible changes, поддержке расширений, проверке зависимостей и стратегии обновления 8.x. Связана с [Версии PHP и режимы выполнения](course://article/Версии PHP и режимы выполнения) и [composer.lock, install/update и audit](course://article/composer.lock, install/update и audit).
7
Фреймворки и платформы
41
Laravel
Справочная статья о Laravel: service container, facades, routing, controllers, Eloquent, migrations, Blade, Artisan, queues и экосистема Laravel. Связана с [Composer, Packagist и composer.json](course://article/Composer, Packagist и composer.json), [Очереди, фоновые задачи и воркеры](course://article/Очереди, фоновые задачи и воркеры) и [XSS, экранирование вывода и шаблоны](course://article/XSS, экранирование вывода и шаблоны).
42
Symfony
Описывает Symfony Components, HttpFoundation, Routing, DependencyInjection, Console, EventDispatcher, Messenger, Flex и роль Symfony как framework и набора переиспользуемых компонентов. Связана с [PSR-7, middleware и HTTP-клиенты](course://article/PSR-7, middleware и HTTP-клиенты) и [Composer, Packagist и composer.json](course://article/Composer, Packagist и composer.json).
43
Yii
Справка по Yii как full-stack фреймворку: MVC, Active Record, Gii, widgets, RBAC, forms, validation и типичные сценарии админок и CRUD-приложений. Смежно с [PDO и подключение к базе](course://article/PDO и подключение к базе).
44
Slim и Mezzio
Разбирает microframework-подход в PHP, routing, middleware pipeline, PSR-7/PSR-15, DI-контейнеры и случаи, где легкий стек удобнее full-stack фреймворка. Связана с [PSR-7, middleware и HTTP-клиенты](course://article/PSR-7, middleware и HTTP-клиенты).
45
CMS и e-commerce на PHP
Обзор WordPress, Drupal, TYPO3, Magento/OpenMage и других PHP-платформ: plugin/module architecture, themes, hooks/events, обновления, безопасность и границы кастомизации. Связана с [Конфигурация безопасности PHP](course://article/Конфигурация безопасности PHP) и [composer.lock, install/update и audit](course://article/composer.lock, install/update и audit).
46
Выбор PHP-фреймворка
Сравнивает full-stack, component-based и microframework-подходы по ecosystem, hiring, performance, legacy constraints, hosting, learning curve и долгосрочной поддержке. Связана с [Laravel](course://article/Laravel), [Symfony](course://article/Symfony), [Yii](course://article/Yii) и [Slim и Mezzio](course://article/Slim и Mezzio).
8
Асинхронность и долгоживущие процессы
47
Асинхронный PHP и event loop
Объясняет cooperative concurrency, event loop, non-blocking I/O, promises, coroutines, Fiber, ReactPHP, Amp и почему обычный блокирующий код меняет поведение async-приложений. Связана с [Генераторы и Fiber](course://article/Генераторы и Fiber).
48
Swoole и OpenSwoole
Справка по Swoole/OpenSwoole: coroutine runtime, HTTP/WebSocket/TCP servers, timers, channels, process management, shared state и отличия от PHP-FPM. Связана с [PHP-FPM, RoadRunner и долгоживущие воркеры](course://article/PHP-FPM, RoadRunner и долгоживущие воркеры).
49
PHP-FPM, RoadRunner и долгоживущие воркеры
Сравнивает PHP-FPM request isolation с RoadRunner worker model, preload/bootstrap, memory leaks, stale state, graceful reloads и требования к контейнерам приложения. Связана с [Версии PHP и режимы выполнения](course://article/Версии PHP и режимы выполнения) и [Swoole и OpenSwoole](course://article/Swoole и OpenSwoole).
50
Очереди, фоновые задачи и воркеры
Описывает job queues, retry, backoff, idempotency, dead-letter queues, delayed jobs, supervisors и отличие фоновых задач от async HTTP. Связана с [Ошибки, исключения и Throwable](course://article/Ошибки, исключения и Throwable) и [Laravel](course://article/Laravel).
51
WebSocket, SSE и realtime в PHP
Справка по realtime-подходам: WebSocket, Server-Sent Events, long polling, broadcast servers, connection lifecycle, sticky sessions и ограничения shared hosting. Связана с [Swoole и OpenSwoole](course://article/Swoole и OpenSwoole) и [Асинхронный PHP и event loop](course://article/Асинхронный PHP и event loop).
52
Наблюдаемость и эксплуатация PHP-сервисов
Описывает logs, metrics, tracing, health checks, memory limits, slow requests, worker restarts, opcache и production-диагностику для FPM и долгоживущих процессов. Связана с [Конфигурация безопасности PHP](course://article/Конфигурация безопасности PHP) и [PHP-FPM, RoadRunner и долгоживущие воркеры](course://article/PHP-FPM, RoadRunner и долгоживущие воркеры).