ВОЗМОЖНОСТИ

Всё, что делал стек, теперь делает один бинарник

Модель выполнения, доставка по HTTP, разделяемое состояние, наблюдаемость и безопасность — встроены, включены по умолчанию или доступны через одну переменную окружения. Никаких конфигов nginx, никаких сайдкаров, никаких плагинов для компиляции.

Run PHP

Модель выполнения

Постоянные воркеры, кооперативные файберы и настоящие фоновые потоки — жизненный цикл запроса вы формируете сами.

Режим воркеров

01

Постоянные процессы PHP инициализируются один раз и обрабатывают тысячи запросов. Суперглобальные переменные, буферы и заголовки мягко сбрасываются между запросами; автозагрузчики, контейнеры и соединения с БД сохраняются.

Мультиплексирование файберов

02

Каждый воркер обрабатывает сотни конкурентных запросов через PHP 8.4 Fibers — операции sleep и await приостанавливают файбер, а не блокируют поток.

Асинхронные промисы

03

Отправляйте замыкания в выделенный пул потоков и дожидайтесь результатов — с комбинаторами all, race и any для параллельного разветвления.

Ранний ответ

04

Отправляйте ответ клиенту немедленно, а затем продолжайте обработку в фоне — ставьте задачи в очередь, пишите логи, прогревайте кеши.

Декораторы

05

Перехватывайте вызовы функций и методов с помощью атрибутов PHP 8 — повторяйте попытки, кешируйте, трассируйте или защищайте, не трогая места вызова.

Потоковая передача SSE

06

Server-Sent Events в реальном времени прямо из PHP с явным контролем сброса буфера — без сюрпризов с буферизацией на прокси.

Serve

HTTP и доставка

Слой веб-сервера, которым раньше владел nginx — маршрутизация, статические файлы, TLS, сжатие и защита — настраивается через переменные окружения.

Три режима маршрутизации

07

Традиционное сопоставление файлов, front-controller фреймворка или SPA-фолбэк — переключается одной переменной; режим воркеров надстраивается поверх любого из них.

Статические файлы

08

Кеш содержимого в памяти, автоматическое определение MIME, заголовки ETag и Last-Modified, потоковая передача больших файлов.

Сжатие Brotli

09

Текстовые ответы сжимаются из коробки — качество настраивается от 0 до 11, сэкономленные байты доступны как метрика.

Встроенный TLS

10

Терминация TLS через две переменные — PEM-сертификат и ключ, минимальная версия протокола проверяется при запуске.

Ограничение частоты запросов

11

Лимиты на каждый IP с настраиваемыми окнами. Запросы сверх лимита получают 429; заполненная очередь PHP отвечает 529 — противодавление (backpressure).

Таймауты

12

Таймаут чтения заголовков против Slowloris, таймауты запросов и окно корректного слива соединений при завершении работы.

Свои страницы ошибок

13

Собственный HTML для каждого статус-кода — положите 404.html или 503.html в каталог и укажите на него одной переменной.

Корректное завершение работы

14

SIGTERM сливает активные соединения перед выходом — плавные развёртывания без потерянных запросов.

Coordinate

Разделяемое состояние

Конкурентные примитивы на уровне процесса, чтобы воркеры координировались без Redis или APCu — внутрипроцессные операции занимают микросекунды, а не время сетевых обращений туда-обратно.

Counter

15

Атомарный аккумулятор int64 — get, set, add, compareAndSet.

Atomic

16

Int64 с явным управлением порядком доступа к памяти.

Flag

17

Атомарный булев флаг для одноразовых переходов.

Once

18

Контейнер однократного выполнения с фабрикой, безопасной для повторного входа.

Mutex

19

Мьютекс с отравлением над хранимым значением, с обнаружением взаимных блокировок.

Channel

20

Ограниченная MPMC-очередь между воркерами с поддержкой файберов.

Map

21

Конкурентное хранилище со строковыми ключами и пакетным доступом.

Pool

22

Ограниченный пул объектов с привязкой к потокам.

Observe

Наблюдаемость

Метрики, логи, трассы и профили встроены в сервер — никаких экспортёров, никаких сайдкаров, никаких изменений в коде.

Метрики Prometheus

23

Выделенный внутренний порт отдаёт метрики запросов, воркеров, очереди, кеша и асинхронных операций — готово для Grafana.

Структурированное логирование

24

JSON-логи доступа с методом, путём, статусом, длительностью и идентификатором запроса в каждой строке — Loki и Elasticsearch разбирают их как есть.

Идентификаторы запросов

25

X-Request-ID генерируется или пробрасывается автоматически, доступен в PHP и проставляется в каждой строке лога.

Трассировка и APM

26

W3C Trace Context, экспорт в OpenTelemetry, автоматическая инструментация PDO, cURL и Redis, плюс SDK трассировки для PHP.

Встроенный профилировщик

27

Профили для каждого запроса в форматах xhprof, speedscope, pprof и FlameGraph — запускаются по заголовку, cookie или сэмплированию.

Проверки работоспособности

28

Эндпоинты liveness и readiness плюс актуальный снимок конфигурации — пробы Kubernetes работают из коробки.

Protect

Безопасность

Разумные средства защиты включены по умолчанию, плюс дени-листы для острых углов легаси-приложений на PHP.

Блокировка dot-путей

29

Скрытые файлы и каталоги — .env, .git/, .htaccess — никогда не отдаются. Включено по умолчанию, без настройки.

Доверенные прокси

30

Настоящий IP клиента из заголовков Forwarded (RFC 7239) и X-Forwarded-*, с доверием на основе CIDR и выбором самого правого недоверенного адреса.

Дени-лист выполнения PHP

31

Блокируйте выполнение .php в доступных для записи путях вроде /uploads/** — атаки через загруженный шелл на легаси-приложения гибнут ещё до дискового I/O.

Разрешённые пути для симлинков

32

Выход за пределы корня документов по символическим ссылкам блокируется, если путь явно не внесён в список разрешений — Laravel storage:link продолжает работать.

Две строки в Dockerfile

Скопируйте своё приложение в образ и запустите его.