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 для повного посібника.