runchance / rcmaker-framework
rcmaker is oneness of fpm and cli high performance php framework, support workerman and swoole run mode
Requires
- php: >=8.1
- nikic/fast-route: ^1.3
- workerman/workerman: ^5.1 || dev-master
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-master
- v3.2.91
- v3.2.9
- v3.2.8
- v3.2.7
- v3.2.6
- v3.2.5
- v3.2.4
- v3.2.3
- v3.2.2
- v3.2.1
- v3.2.0
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0
- v2.9.4
- v2.9.3
- v2.9.2
- v2.9.1
- v2.9
- v2.8.9
- v2.8.8
- v2.8.7
- v2.8.6
- v2.8.5
- v2.8.4
- v2.8.3
- v2.8.2
- v2.8.1
- v2.8
- v2.7.1
- v2.7
- v2.6
- v2.5
- v2.4
- v2.3
- v2.2
- v2.1
- v2.0
- v1.5.0
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.1
- v1.0
This package is auto-updated.
Last update: 2026-11-05 06:43:54 UTC
README
Important
项目已升级至 rcmaker-php
本项目已停止维护,后续开发、功能更新及问题修复统一转移至 rcmaker-php。
新项目地址:rcmaker-php
迁移指南:从旧 rcmaker / rcmaker-framework 迁移到 rcmaker-php
为什么升级?
rcmaker-php 是 rcmaker 的新一代升级版本。
新版本进一步简化了整体架构,不再依赖额外的框架壳,仅使用框架本身即可独立运行。
- 更高集成度: 框架与运行能力深度整合,减少额外组件依赖。
- 更简洁的架构: 无需单独的框架壳,降低开发与维护复杂度。
- 更便捷的部署: 简化项目初始化、运行与交付流程。
- 持续开发维护: 后续新功能、优化及问题修复将集中在新项目。
建议新项目直接使用 rcmaker-php,现有项目请参考迁移指南逐步升级。
Project Moved to rcmaker-php
This repository is no longer maintained.
rcmaker-php is the next-generation upgrade of rcmaker, featuring a more integrated architecture that runs independently without requiring a separate framework shell.
New Repository: https://github.com/runchance/rcmaker-php
Migration Guide: Migrating from rcmaker / rcmaker-framework
以下内容为旧版项目文档,仅供历史参考。
简体中文 | English
RCMAKER 是面向快速交付的 PHP 常驻内存应用框架,以 Workerman 为主线,保留 FPM 和旧 Swoole 兼容分支;Swoole 不再新增适配。
文档
组件使用手册:按开发任务查找入口、代码示例和升级注意事项。
运行环境与依赖
本版本仅支持 PHP 8.5.x,包括 CLI、FPM 和打包后的二进制程序。第三方依赖只采用稳定版,不支持开发分支或预发布版本。
源码中的第三方升级记录记录了适配进度、迁移要求、测试结果和待验证事项。记录中的阶段性通过不代表整个升级工作已经完成。
Medoo 2.6.1 继续内置,并由独立的 RC 适配层接入;PostgreSQL 插入 ID、权限及升级边界见 Medoo 说明。ThinkORM 改为可选依赖,需要时安装:
composer require "topthink/think-orm:^4.0.51"
在框架 bootstrap 配置中启用 RC\Helper\Db\Think,业务代码不要自行初始化 ORM。
DB('think') 保留绑定连接组的类名和旧 $db::table(...) 调用;确需原生连接对象时使用 DB('think', native: true)。SDB 和自动表单由框架接入,不需要业务初始化 ORM。应用模型继续继承 RC\Model\Think;升级时还需检查上游 ThinkORM 4.x 的模型迁移要求。
Eloquent 同样按需通过 Composer 接入,使用独立连接与框架初始化的模型解析器;SDB 和自动表单保持统一入口。版本、配置和旧调用迁移见 Illuminate 接入说明。
自动表单状态切换保留显式筛选范围,不复用其他检查或上次操作的数据;条件优先级、权限范围和返回值见状态切换说明。
本地验证码
内置图形与离线滑块两种提供方,可配置切换,不依赖云服务或 CDN。前端资源可从 PHAR 读取,服务端使用框架缓存校验与一次性消费。配置与接口见验证码组件。
二维码
保留 PNG/text/raw 入口,增加 SVG 与可选完整掩码评估;复用内置条码引擎,不因生成二维码加载 PDF。见二维码组件。
定时任务
保留秒级/分钟级调用,内置稳定 Cron 解析器,支持命名月份/星期与月末工作日;任务可显式取消,不残留已移除任务的回调。配置、时区和多进程边界见定时任务组件。
校验与上传
继续使用 validator() 和自动表单。整数溢出、规则误拼、文件选项串字段及客户端 MIME 误信任等问题已修复;新增 UTF-8 邮箱、Han 扩展字符及正确的 WebP/AVIF 元数据支持。升级边界和文件存储示例见校验与上传指南。图片元数据校验不是完整安全检测。
HTTP 请求
基于稳定 Workerman 5.2.3,修复同名上传文件覆盖、请求体缓存串解码和应用异常配置串用,并限制进程内路由缓存容量。现有业务入口不变;上传下标与 FPM 头部返回范围的升级说明见 HTTP 请求与路由缓存。
ip() 默认只取连接地址,使用反向代理时须明确配置可信代理;独立 APP 进程组可以覆盖。见客户端 IP 与可信代理。
分组中间件按外层到内层继承,单条路由的中间件不影响相邻路由。配置顺序、异常处理和升级注意见路由分组。
已匹配资源的方法错误不再落入 MVC,静态路由和静态 PHP 在读取前执行完整鉴权;错误的中间件配置会明确失败。公开目录优先级、Query 模式与升级边界见路由分发。
原生 FastRoute collector 和 RC 声明共用分组鉴权,path: 策略覆盖框架处理的路径入口,fallback 也执行应用策略。配置与兼容说明见Collector 与路径中间件。
默认错误等级已适配 PHP 8.5;路由中间件在注册时校验,父子列表同名键不会覆盖鉴权。详见初始化与路由策略。
开发文件监控按实例保存快照,发现新增、修改和删除,不让坏文件压掉其他变化。配置、轮询限制和二进制运行边界见文件监控。
请求限流
使用具体框架缓存驱动维护单记录令牌桶,支持带权扣额、原子并发和正确的等待时间;存储失败不放行。接口、策略升级与缓存边界见请求限流。
共享内存
同机原生共享段保留字节、限制解压并协调并发读写,不是跨机缓存或持久数据库。静态选择器、多应用 ID、PHAR 与 Windows 生命周期边界见共享内存指南。
短信验证码
保留 sms() 与七种验证码类型,支持 IPv6 绑定、应用/场景隔离、原子一次性校验、错误次数上限及发送失败撤销。实际发送复用业务的供应商接入,不能将验证码返回给前端。配置和升级影响见短信验证码。
分页
SDB 保留统一的数据分页入口,页码窗口复用稳定原版;简单分页不用查总数。JSON、HTML 转义和配置限制见分页组件。
拼音
保留 pinyin() / PY() 的字符串接口,轻量首音索引避免逐字扫描大词表;需要词组、姓氏、多音字时按需使用原版转换器。编码、资源与 PHAR 边界见拼音组件。
配置
配置与环境变量的缓存、默认值、PHAR、刷新和安全写入约定见配置读取与更新。
文件操作
文件读写返回值、PHAR 读取与 CLI 清理边界见文件操作说明。历史 copy/move/delete 占位接口仍未实现,现在明确抛出不支持异常,不再静默返回空值。
二进制构建保留组件版权声明、默认排除凭据和开发数据;发布前失败保留旧程序,不清空无关构建文件。复制、链接、重复加密与平台验证范围见打包收集说明。
CLI 下载保留旧文件、检查包格式与 CPU,并记录缓存身份;可信摘要、离线文件和限制见下载与缓存。
模板
模板引擎保留按需渲染,修复常驻进程数据残留,并适配只读 PHAR;版本、升级影响与可选引擎见模板组件。
静态预热
Linux 在 fork 前全局预热,重载时更新快照;Windows 按绑定 APP 组预热。更新方式、内存与 PHAR 边界见静态预热说明。
常驻回收
请求数达到软阈值后错峰排空该 APP 子进程,避免空闲长连接阻止退出;文件、队列与运行限制见请求数回收。
许可证
Apache-2.0。内置第三方库及字体遵循各自保留的许可证,不因集成而改变授权。