Что вы создадите
Pulse принимает поток NDJSON-событий через CLI или HTTP, проверяет и агрегирует данные без загрузки всего файла, сохраняет batch и cursor транзакционно, публикует атомарный отчёт и оставляет ограниченные по cardinality сигналы. Один проект связывает runtime, язык, стандартную библиотеку и эксплуатацию.
Это не третий вариант обычного CRUD-приложения. Главы исследуют поведение процесса, память, ресурсы, wire formats и production-границы через измеримые эксперименты. Каждая глава заканчивается лабораторной картой и локальным тестом.
Как работает интерактивность
На каждой из двадцати глав есть три сохраняемых чекпоинта, два вопроса с объяснениями, личная заметка и отметка прохождения. Все данные остаются в localStorage браузера и удаляются через настройки сайта. Результаты не отправляются в аналитику.
Совместимые примеры можно запускать в локальном PHP 8.4 WebAssembly Worker. Синтаксис, доступный только в PHP 8.5, показан статически и не маскируется под исполняемый пример.
Почему это независимый материал
Приложенный объединённый HTML PHP Manual использован как карта областей: language, SAPI, streams, SPL, security, PDO, Intl, OPcache и migration. Его порядок, определения, листинги, примечания и иллюстрации не воспроизводятся и не переводятся.
Композиция вокруг Pulse, объяснения, лаборатории, вопросы и SVG-схемы написаны специально для сервиса. Отдельный технический аудит ищет дословные совпадения, но его результат не объявляется юридической гарантией.
Актуализация на август 2026
Основная production-линия руководства — PHP 8.5. Рассматриваются URI extension, pipe operator, clone with, NoDiscard и изменения OPcache, а migration chapter отдельно проверяет deprecations и platform requirements. Точные сроки поддержки берутся со страницы Supported Versions.
Временные факты имеют дату проверки и ссылки на первичные источники. При реальном обновлении дополнительно проверяются свежий ChangeLog, patch-релиз, системные библиотеки и зависимости конкретного проекта.
Редакционная граница
Самоучитель объясняет наблюдаемое поведение и выбор, но не выдаёт внутренние детали Zend Engine за стабильный пользовательский API. Эксперимент фиксирует runtime и workload, а производственный вывод подтверждается профилем в целевой среде.
Материал не заменяет security review, нагрузочное тестирование или документацию конкретного драйвера. Его задача — дать воспроизводимую модель и контрольные вопросы, с которыми такую проверку можно провести осмысленно.
Закрепите материал
Отметка, заметка, чек-лист и ответы остаются в localStorage этого браузера и не отправляются в аналитику.
Оглавление самоучителя
I. Среда выполнения
- Глава 1Один PHP-код, разные режимы запуска
PHP-программа получает разный контракт в CLI и FPM: меняются источник входа, срок жизни процесса, заголовки и способ сообщить об ошибке.
85 минут - Глава 2Конфигурация как слоёный контракт
Настройка становится управляемой, когда известны источник каждого значения, область действия, возможность изменения и безопасный способ проверки.
90 минут - Глава 3Значения, ссылки и память без мифов
Память PHP экономится архитектурой потока данных: ограниченным пакетом, отсутствием скрытого накопления и измерением пиков, а не ритуальными unset.
105 минут - Глава 4Ошибки как управляемый маршрут отказа
Надёжная программа различает ожидаемый плохой ввод, предметный отказ и дефект выполнения, а затем ровно один слой переводит причину в протокол.
100 минут
II. Язык как инструмент
- Глава 5Алгебра типов на границе данных
Тип полезен, когда сужает множество допустимых состояний; сложная декларация без предметного имени часто лишь переносит путаницу в сигнатуру.
110 минут - Глава 6Строка, байты и пользовательский текст
Строка PHP хранит байты; пользователь видит графемы, протокол считает октеты, а правило поиска выбирает собственную нормализацию.
115 минут - Глава 7Массивы и SPL по форме операции
PHP array удобен, но не нейтрален: правильная структура начинается с требуемых операций и ограничений, а не с привычного синтаксиса.
120 минут
III. Управляемая динамика
- Глава 8Callables, атрибуты и рефлексия с пределами
Динамика остаётся поддерживаемой, когда область поиска конечна, метаданные проверяются при сборке, а вызов сохраняет типизированный контракт.
115 минут - Глава 9Генераторы, Fibers и честная кооперация
Генератор управляет последовательностью значений, Fiber — приостановкой стека; ни один механизм сам по себе не выполняет работу параллельно.
125 минут - Глава 10Современные объекты PHP 8.4–8.5
Современная возможность оправдана, когда делает инвариант или границу изменения яснее; краткий синтаксис без правила не улучшает модель.
130 минут
IV. Потоки и протоколы
- Глава 11Streams, wrappers и filters без чтения всего файла
Stream унифицирует последовательный ввод, но wrapper задаёт доверие и возможности; универсальный API не делает удалённый ресурс локальным и безопасным.
120 минут - Глава 12Файлы, пути, блокировки и атомарная замена
Безопасная файловая операция начинается с фиксированного корня и серверного имени, а надёжная запись публикует завершённый файл атомарной заменой.
125 минут - Глава 13URI, JSON и стабильный wire format
Wire format — публичный контракт: он отделяет данные от объектов процесса, версионируется и проверяется до создания предметной модели.
120 минут - Глава 14HTTP, cookie, сессии и безопасные загрузки
Браузер хранит идентификатор и отправляет сообщение; сервер заново проверяет каждое поле, право, лимит и переход состояния.
135 минут
V. Данные и доверие
- Глава 15PDO, транзакции и переносимый контракт данных
PDO унифицирует интерфейс, но не семантику СУБД: SQL, типы, isolation и поведение ошибок проверяются на выбранном драйвере.
140 минут - Глава 16Случайность, пароли, хеши и криптографические границы
Криптографическая операция начинается с модели угроз и жизненного цикла ключа; правильная функция не исправит повтор nonce или секрет в репозитории.
135 минут - Глава 17Время, locale и интернационализация как данные
Момент времени, настенные часы, язык и правила сортировки — разные данные; глобальная locale процесса не должна тайно менять контракт Pulse.
125 минут
VI. Эксплуатация и миграция
- Глава 18OPcache, JIT и ёмкость FPM по измерениям
Производительность production PHP начинается с OPcache и измерения запроса; JIT и число workers выбираются после профиля CPU, памяти и очереди.
145 минут - Глава 19Долгоживущий worker, сигналы и наблюдаемость
Worker считается управляемым, когда ограничивает работу, принимает остановку между атомарными единицами и оставляет оператору достаточный сигнал без секретов.
145 минут - Глава 20Миграция на PHP 8.5 и выпуск Pulse
Обновление runtime — управляемое изменение платформы: сначала наблюдаем несовместимость, затем исправляем, тестируем обе ветки и только потом меняем production.
170 минут
Источники актуализации
- php.nethttps://www.php.net/supported-versions.phpПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- php.nethttps://www.php.net/releases/8.5/en.phpПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- php.nethttps://www.php.net/manual/en/migration85.phpПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- php.nethttps://www.php.net/manual/en/features.commandline.phpПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- php.nethttps://www.php.net/manual/en/book.stream.phpПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- php.nethttps://www.php.net/manual/en/book.spl.phpПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- php.nethttps://www.php.net/manual/en/book.pdo.phpПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- php.nethttps://www.php.net/manual/en/book.opcache.phpПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- creativecommons.orghttps://creativecommons.org/licenses/by/3.0/Первичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
Содержательная проверка: . Автор-разработчик Михаил Каржин.