SwooleApp: Легковесный фреймворк для SwooleЕсли вы работали с
Swoole напрямую, то знаете: производительность — отличная, но структуры часто не хватает.
SwooleApp закрывает именно эту дыру — это лёгкий каркас для долгоживущих PHP-приложений без лишнего boilerplate.
Что такое SwooleAppSwooleApp — фреймворк для PHP, работающий как
постоянно запущенный сервер, а не «PHP-скрипт на запрос».
Это даёт:
❌ без перезапуска PHP на каждый запрос
⚡ меньше overhead и выше RPS
♻️ переиспользование ресурсов (Redis, БД, кэши)
🧵 асинхронность и фоновые задачи из коробки
Что есть внутриРоутинг через
PHP 8 attributesMiddleware
Task Workers для блокирующих операций
Встроенный «cron» (Cyclic Jobs)
State Container для пулов соединений и shared-ресурсов
Минимальная и прозрачная архитектура
Пример приложения (готово к запуску)В репозитории есть demo-проект с Docker:
REST API для Redis (get / set)
Фоновая задача с имитацией тяжёлой работы
Циклическая джоба (лог раз в 10 секунд)
Middleware с замером времени
docker-compose up → всё работает
Ключевая идея: State ContainerSwooleApp использует
долгоживущие воркеры, поэтому:
пулы 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, а лёгкий каркас для другой задачи.
👉
ХабрБиблиотека пхпшника