Lift v1.3.0

Сравнение фреймворков

Прямые конкуренты

Lift нацелен на ту же нишу, что Flight PHP, Slim 4 и Lumen — лёгкие фреймворки для построения API и микросервисов без накладных расходов полностекового решения.


Матрица возможностей

Возможность Lift Flight Slim 4 Lumen Silex¹ Mezzio
Версия PHP 8.1+ 7.0+ 7.4+ 8.1+ 7.0+ 8.1+
HTTP по PSR-7 ✗²
Контейнер PSR-11
Middleware PSR-15
DI с автосвязыванием ✗³
Маршрутизация через атрибуты PHP ✓⁴
Поиск статических маршрутов за O(1) ✓⁵ ✓⁵
Именованные маршруты + генерация URL
Группы маршрутов
Встроенный JWT
Шифрование AES-256-GCM
Хеширование паролей (Argon2id)
Подпись HMAC
UUID v4/v7 + ULID
Система очередей
Redis-клиент
JSON-RPC 2.0
CORS-middleware ✓⁶ ✓⁶ ✓⁶
Middleware ограничения частоты
Защита CSRF ✓⁷
Middleware заголовков безопасности
Ноль рантайм-зависимостей вне PSR

¹ Silex прекращён (2019). Указан только для исторического контекста.
² Flight использует собственные HTTP-объекты, не PSR-7.
³ Slim 4 поставляет SlimContainerResolver, но не автосвязывает; требует явных привязок.
⁴ Mezzio поддерживает атрибуты через пакет mezzio/mezzio-attributerouter.
⁵ Через FastRoute (отдельная зависимость nikic/fast-route).
⁶ Через tuupola/cors-middleware или похожий пакет (отдельная зависимость).
⁷ Через session-помощники Laravel (только Lumen).


Производительность

Актуальные числа со страницы /benchmarks при одинаковых условиях прогона.

Снимок HTTP-пропускной способности (зап./с)

Фреймворк GET /ping GET /json GET /users/{id}
raw-php 9 009 9 030 8 947
flight 3 923 3 833 3 679
lift 3 437 3 552 3 375
slim 1 727 1 759 1 767

Условия теста

  • PHP 8.3.6 с OPcache + tracing JIT (64M буфер JIT)
  • php -S (single-process), один и тот же хост и одинаковый профиль прогона для всех фреймворков
  • wrk -t4 -c64 -d30s --latency
  • ~100 000+ запросов на каждый эндпоинт для каждого фреймворка

См. ../benchmarks для percentiles задержки, относительных графиков и полной методологии.


Почему не Slim 4?

Slim 4 превосходен, но требует nikic/fast-route для конкурентоспособной производительности маршрутизации и php-di/php-di (или похожий) для автосвязывания — добавляя зависимости. Lift поставляет оба «из коробки» без лишних пакетов и добавляет JWT, шифрование, UUID, очереди и JSON-RPC, которые Slim оставляет сторонним библиотекам.

Почему не Lumen?

Lumen использует полный IoC-контейнер Laravel и загрузку через сервис-провайдеры, что добавляет ~5–10 мс накладных расходов на холодный старт. Если вы уже на Laravel, Lumen — естественный выбор. Если вы начинаете с нуля или оптимизируете под микросервисы, Lift стартует менее чем за 1 мс.

Почему не Flight?

Flight быстр и действительно без зависимостей, но он предшествует стандартам PSR и не может использовать современную экосистему middleware PSR-7/15. Lift даёт вам тот же минимальный след с полным соответствием PSR, современными идиомами PHP 8.1+ и полным набором инструментов для шифрования/безопасности.


Запуск собственного бенчмарка

# Установить wrk
brew install wrk   # macOS
sudo apt install wrk  # Ubuntu

# Запустить приложение Lift
php -S localhost:8080 benchmarks/apps/lift_app.php

# Статический маршрут
wrk -t4 -c100 -d10s http://localhost:8080/ping

# Динамический маршрут
wrk -t4 -c100 -d10s http://localhost:8080/users/42

См. ../benchmarks для полного руководства.