REST API-фреймворк для PHP 8+, который генерирует маршруты, валидацию и документацию OpenAPI по обычным методам классов с помощью рефлексии.
hhxsv5/laravel-s
Адаптер для запуска приложений Laravel и Lumen на Swoole в виде постоянно работающего PHP-сервера с поддержкой WebSocket, TCP/UDP и асинхронных задач.
- Звёзды
- 3,879
- Форки
- 463
- Открытые issues
- 70
- Последний коммит
- 4 дня назад
Что это?
LaravelS подключает приложения Laravel и Lumen к Swoole, позволяя PHP-приложению работать как постоянный серверный процесс, а не запускаться заново при каждом запросе. Пакет устанавливается через Composer, публикуется одной командой artisan и запускается скриптом bin/laravels, который управляет процессами master, manager, worker и task.
Помимо обработки HTTP, пакет предоставляет встроенный WebSocket-сервер с интерфейсом обработчика, поддержку нескольких портов и смешанных протоколов для пользовательских TCP-, UDP- и HTTP-слушателей, асинхронные события и очереди задач, а также cron-задания с точностью до миллисекунд, которые могут заменить Linux crontab. Кроме того, доступны пользовательские процессы, разделяемая память SwooleTable и конфигурация с поддержкой плавной перезагрузки и автоматической перезагрузки при изменении кода через inotify, fswatch или inotifywait.
Для работы проекта требуются PHP 8.2 или новее, Swoole 5.0 или новее, а также Laravel или Lumen 10 или новее. В README приведены примеры конфигурации обратного прокси для Nginx и Apache, позволяющие обслуживать статические файлы параллельно с процессом Swoole.
Ключевые возможности
- 01Встроенный HTTP- и WebSocket-сервер с интерфейсом обработчика событий WebSocket
- 02Поддержка нескольких портов и смешанных протоколов для пользовательских TCP-, UDP- и HTTP-слушателей
- 03Асинхронные обработчики событий и очередь задач, выполняемых в рабочих процессах Swoole task
- 04Cron-задания с точностью до миллисекунд, которые могут заменить Linux crontab
- 05Плавная перезагрузка и автоматическая перезагрузка после изменений кода
- 06Разделяемая память SwooleTable и пользовательские долгоживущие процессы
Сценарии использования
- Запуск приложения Laravel с постоянными worker-процессами для сокращения накладных расходов на загрузку при каждом запросе
- Добавление канала push-уведомлений в реальном времени через WebSocket в существующее приложение Laravel
- Создание пользовательских TCP- или UDP-сервисов, использующих общий с приложением Laravel код и доступ к базе данных
- Замена заданий Linux crontab внутрипроцессными таймерами с точностью до миллисекунд и запланированными командами Laravel
Быстрый старт
- 1
Установите пакет через Composer
composer require "hhxsv5/laravel-s:~3.8.0" - 2
Опубликуйте конфигурацию и бинарные файлы
php artisan laravels publish - 3
При необходимости настройте listen_ip и listen_port в config/laravels.php
- 4
Запустите LaravelS
php bin/laravels start
Что важно знать
- Требуются расширение Swoole (>=5.0) и PHP >=8.2 с расширением intl, поэтому это не прямая замена стандартному хостингу PHP-FPM.
- Сервер работает долго и постоянно находится в памяти, поэтому код и состояние сохраняются между запросами и требуют осторожного обращения. Перед запуском прочитайте важные примечания в README.
В подборках
Темы
Частые вопросы
- Что такое laravel-s?
- Адаптер для запуска приложений Laravel и Lumen на Swoole в виде постоянно работающего PHP-сервера с поддержкой WebSocket, TCP/UDP и асинхронных задач. LaravelS подключает приложения Laravel и Lumen к Swoole, позволяя PHP-приложению работать как постоянный серверный процесс, а не запускаться заново при каждом запросе. Пакет устанавливается через Composer, публикуется одной командой artisan и запускается скриптом bin/laravels, который управляет процессами master, manager, worker и task.
- laravel-s можно использовать бесплатно? Какая у него лицензия?
- laravel-s распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- laravel-s всё ещё поддерживается?
- Активно поддерживается. Последний коммит в laravel-s — 2 нояб. 2026 г..
- Для чего можно использовать laravel-s?
- Запуск приложения Laravel с постоянными worker-процессами для сокращения накладных расходов на загрузку при каждом запросе Добавление канала push-уведомлений в реальном времени через WebSocket в существующее приложение Laravel Создание пользовательских TCP- или UDP-сервисов, использующих общий с приложением Laravel код и доступ к базе данных Замена заданий Linux crontab внутрипроцессными таймерами с точностью до миллисекунд и запланированными командами Laravel
- Как установить laravel-s?
- Установите пакет через Composer: composer require "hhxsv5/laravel-s:~3.8.0" Опубликуйте конфигурацию и бинарные файлы: php artisan laravels publish При необходимости настройте listen_ip и listen_port в config/laravels.php Запустите LaravelS: php bin/laravels start
- Где скачать laravel-s?
- Исходный код и инструкции по установке — на GitHub: https://github.com/hhxsv5/laravel-s
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
PHP-расширение с событийным сетевым движком и средой выполнения корутин для создания постоянно работающих TCP-, UDP-, HTTP- и WebSocket-сервисов.
Библиотека-планировщик задач и очередь задач для Python с триггерами cron, интервалов, календарных и разовых запусков, а также поддержкой постоянных хранилищ заданий.
Vapor — HTTP-веб-фреймворк для создания сайтов, API и облачных сервисов на Swift.
Веб-сервер на Rust с компактной конфигурацией, автоматическим TLS и трассировкой запросов, связанной с логами; подходит для статических сайтов и обратных прокси.
Небольшая CLI-утилита, которая превращает любую программу со STDIN/STDOUT в WebSocket-сервер, как inetd для WebSocket.