Repolode
hhxsv5

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

    通过 Composer 安装依赖包

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

    发布配置文件和二进制文件

    php artisan laravels publish
  3. 3

    根据需要在 config/laravels.php 中修改 listen_ip 和 listen_port

  4. 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 数据每日更新。

相关项目