Repolode
hhxsv5

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. 1

    Установите пакет через Composer

    composer require "hhxsv5/laravel-s:~3.8.0"
  2. 2

    Опубликуйте конфигурацию и бинарные файлы

    php artisan laravels publish
  3. 3

    При необходимости настройте listen_ip и listen_port в config/laravels.php

  4. 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 обновляется ежедневно.

Похожие проекты

REST API-фреймворк для PHP 8+, который генерирует маршруты, валидацию и документацию OpenAPI по обычным методам классов с помощью рефлексии.

1,4 тыс.313PHPБез лицензииОбновлён позавчера

Библиотека-планировщик задач и очередь задач для Python с триггерами cron, интервалов, календарных и разовых запусков, а также поддержкой постоянных хранилищ заданий.

7,7 тыс.+9 за неделю819PythonMITАктивно поддерживаетсяОбновлён 11 дней назад

Веб-сервер на Rust с компактной конфигурацией, автоматическим TLS и трассировкой запросов, связанной с логами; подходит для статических сайтов и обратных прокси.

2,2 тыс.+9 за неделю100RustMITОбновлён 16 часов назад