hhxsv5/laravel-s
将 Laravel 和 Lumen 应用无缝运行在 Swoole 上的适配器,支持常驻内存的 HTTP、WebSocket 与异步任务。
- Star
- 3,879
- Fork
- 463
- 未关闭 Issue
- 70
- 最近提交
- 5天前
这是什么?
LaravelS 将 Laravel 和 Lumen 应用接入 Swoole,使 PHP 应用以常驻进程的方式运行,而不必每次请求都重新启动框架。通过 Composer 安装,使用 artisan 命令发布配置,再由 bin/laravels 脚本管理 Master、Manager、Worker 和 Task 等进程。
除 HTTP 服务外,它还内置 WebSocket 服务器并提供处理器接口,支持多端口混合协议以实现自定义 TCP、UDP 和 HTTP 监听,同时提供异步事件、异步任务队列和毫秒级定时任务,可替代 Linux crontab。此外还包括自定义进程、SwooleTable 共享内存,并支持平滑重启,以及通过 inotify、fswatch 或 inotifywait 实现代码修改后的自动重载。
项目要求 PHP 8.2 及以上、Swoole 5.0 及以上,以及 Laravel 或 Lumen 10 及以上版本。文档中附有 Nginx 和 Apache 反向代理的配置示例,便于静态资源与 Swoole 进程协同工作。
核心功能
- 01内置 HTTP 与 WebSocket 服务器,提供 WebSocket 事件处理接口
- 02支持多端口混合协议,可自定义 TCP、UDP 和 HTTP 监听
- 03异步事件监听与异步任务队列,运行在 Swoole 任务进程中
- 04毫秒级定时任务,可替代 Linux crontab
- 05支持平滑重启,以及代码修改后的自动重载
- 06提供 SwooleTable 共享内存和自定义常驻进程
适用场景
- 让 Laravel 应用以常驻 Worker 运行,减少每次请求的启动开销
- 为现有 Laravel 项目增加实时 WebSocket 推送通道
- 基于 Laravel 代码与数据库构建自定义 TCP 或 UDP 服务
- 用进程内毫秒级定时器和 Laravel 命令替代 crontab 任务
快速上手
- 1
通过 Composer 安装依赖包
composer require "hhxsv5/laravel-s:~3.8.0" - 2
发布配置文件和二进制文件
php artisan laravels publish - 3
根据需要在 config/laravels.php 中修改 listen_ip 和 listen_port
- 4
启动 LaravelS
php bin/laravels start
使用前须知
- 需要安装 Swoole 扩展(>=5.0)以及启用 intl 扩展的 PHP >=8.2,因此不能直接替代标准的 PHP-FPM 部署。
- 以长驻内存的服务方式运行,代码和状态会在请求之间保留,需要谨慎处理;运行前请阅读 README 中的重要须知。
收录于专题
标签
常见问题
- laravel-s 是什么?
- 将 Laravel 和 Lumen 应用无缝运行在 Swoole 上的适配器,支持常驻内存的 HTTP、WebSocket 与异步任务。 LaravelS 将 Laravel 和 Lumen 应用接入 Swoole,使 PHP 应用以常驻进程的方式运行,而不必每次请求都重新启动框架。通过 Composer 安装,使用 artisan 命令发布配置,再由 bin/laravels 脚本管理 Master、Manager、Worker 和 Task 等进程。
- laravel-s 可以免费使用吗?用的什么许可证?
- laravel-s 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- laravel-s 还在维护吗?
- 活跃维护中。laravel-s 最近一次提交是在 2026年11月2日。
- laravel-s 适合用来做什么?
- 让 Laravel 应用以常驻 Worker 运行,减少每次请求的启动开销 为现有 Laravel 项目增加实时 WebSocket 推送通道 基于 Laravel 代码与数据库构建自定义 TCP 或 UDP 服务 用进程内毫秒级定时器和 Laravel 命令替代 crontab 任务
- laravel-s 怎么安装和运行?
- 通过 Composer 安装依赖包: composer require "hhxsv5/laravel-s:~3.8.0" 发布配置文件和二进制文件: php artisan laravels publish 根据需要在 config/laravels.php 中修改 listen_ip 和 listen_port 启动 LaravelS: php bin/laravels start
- 在哪里获取 laravel-s?
- 源代码和安装说明在 GitHub 上:https://github.com/hhxsv5/laravel-s
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
为 PHP 提供事件驱动网络引擎与协程运行时的扩展,用于构建长驻的 TCP、UDP、HTTP 和 WebSocket 服务。
Python 任务调度与任务队列库,支持 Cron、间隔、日历和一次性等多种触发方式。
Vapor 是一个用 Swift 编写的服务端 HTTP Web 框架,用于构建网站、API 和云端服务。
基于 Rust 的 Web 服务器,配置简洁,支持自动 TLS,并可将请求追踪与日志关联起来排查问题。
一个命令行工具,可把任意读写 STDIN/STDOUT 的程序封装成 WebSocket 服务。