Open Swoole (клон оригинального расширения Swoole) — это высокопроизводительная платформа для асинхронного запуска подпрограмм на PHP.
Swoole устанавливается как расширение для PHP. На данный момент Swoole поддерживается только для Linux и Mac
Стоит иметь в виду, что Swoole не работает с xDebug, самым популярным инструментом отладки в экосистеме PHP, а также плохо совместим с некоторыми другими инструментами профилирования и мониторинга.
Для правильной работы приложения, запущенного при помощи этой технологии, оно должно быть разработано с поддержкой асинхронного режима. Под этим термином здесь объединены настоящий асинхронный режим и обычный long-runnig режим, так как рекомендации к ним одинаковые.
Под термином "асинхронность" здесь объединены настоящий асинхронный режим и обычный long-running режим, так как рекомендации к ним одинаковы.
В асинхронном режиме переиспользуются загруженные конфигурации фреймворка, классы, инициализированные сервисы, кешированные данные, что значительно ускоряет работу.
Но вместе с этим есть характерные особенности, такие как необходимость больше следить за утечками памяти и устранять блокирующие операции, также многие из привычных сторонних библиотек не поддерживают асинхронный режим.
Хранение состояния (state) в логических частях приложения становится нежелательным, особенно, если оно связано с запросом.
Интерфейсы ResetInterface и RollbackInterface фреймворка предназначены для сброса состояния после каждого асинхронного запроса.
Для Swoole необходимо будет изменить файл /public/index.php, чтобы фреймворк HLEB2 выполнялся в цикле. Базовый рабочий пример:
Сервер Swoole запускается консольной командой:
$php ./public/index.php
Согласно настройкам, приложение будет доступно по адресу:
http://localhost:9504