Если вы работали с Swoole напрямую, то знаете: производительность — отличная, но структуры часто не хватает.
SwooleApp закрывает именно эту дыру — это лёгкий каркас для долгоживущих PHP-приложений без лишнего boilerplate.
Что такое SwooleApp
SwooleApp — фреймворк для PHP, работающий как постоянно запущенный сервер, а не «PHP-скрипт на запрос».
Это даёт:
❌ без перезапуска PHP на каждый запрос
⚡ меньше overhead и выше RPS
♻️ переиспользование ресурсов (Redis, БД, кэши)
🧵 асинхронность и фоновые задачи из коробки
Что есть внутри
Роутинг через PHP 8 attributes
Middleware
Task Workers для блокирующих операций
Встроенный «cron» (Cyclic Jobs)
State Container для пулов соединений и shared-ресурсов
Минимальная и прозрачная архитектура
Пример приложения (готово к запуску)
В репозитории есть demo-проект с Docker:
REST API для Redis (get / set)
Фоновая задача с имитацией тяжёлой работы
Циклическая джоба (лог раз в 10 секунд)
Middleware с замером времени
docker-compose up → всё работаетКлючевая идея: State Container
SwooleApp использует долгоживущие воркеры, поэтому:
пулы Redis / БД создаются один раз при старте
соединения переиспользуются
нет постоянного connect/disconnect
⚠️ Важно: контейнер изолирован на воркер — 4 воркера = 4 пула. Это ограничение архитектуры Swoole.
Task Workers — зачем они нужны
Любая блокирующая операция = стоп HTTP-воркера.
Решение:
HTTP-воркер отдаёт задачу в Task Worker
сам продолжает обслуживать запросы
результат возвращается асинхронно
Так сервер не «залипает» на
sleep(), I/O или тяжёлых запросах.Почему не Laravel / Symfony + Swoole
Коротко и честно:
они проектировались под stateless PHP-FPM
глобальное состояние → утечки памяти
ORM без пулов соединений
много блокирующего кода
для стабильности нужно слишком много воркеров
В итоге теряется смысл Swoole.
SwooleApp проектировался сразу под long-living процессы, без костылей.
Кому подойдёт
микросервисы и API
high-load
real-time / async
если хочется Swoole, но без боли
если Laravel/Symfony на Swoole разочаровали
Это не замена Laravel, а лёгкий каркас для другой задачи.
👉 Хабр
Библиотека пхпшника