kianhugh / mtphp
mtphp - 高性能、高并发 PHP 框架
Requires
- php: ^8.0
- ext-json: *
- ext-mbstring: *
- ext-pdo: *
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
版权所有 (c) 武汉麦麦心选网络科技有限公司
高性能、高并发的现代 PHP 框架。路由、数据库连接、事务、视图模板、中间件一应俱全,并内置轻量模型、文件缓存、文件日志,零配置即可用、配有详尽中文注释,原生支持 Swoole 常驻内存 + 协程 + 连接池。
完整设计见 DESIGN.md;使用手册见 使用手册.md;📚 在线中文文档:http://mtphp.msiyu.com/docs。
为什么选 MTPHP
- 零依赖,干净可控:框架核心不引入任何第三方 Composer 包,仅依赖 PHP 内置扩展。无供应链风险、无版本地狱,源码一眼可查。
- 零配置,开箱即跑:数据库连接、缓存、日志、模板、路由缓存等核心组件默认即用,几行代码即可起服务,不必先啃一堆配置。
- 现代 PHP 8 内核:全面使用强类型、联合类型、枚举等 PHP 8 特性,类型安全、可维护性强。
- FPM + Swoole 双模式:同一套代码既能在传统 FPM 下运行,也能在 Swoole 常驻内存下以协程 + 连接池承载高并发,按需切换。
- 主流框架风格 API(思想借鉴·独立实现):
Route/DB/Model/View/Middleware等心智模型与主流框架一致,降低学习与迁移成本;内核为自主研发,非任何框架的 fork。 - 自带测试与压测基座:零依赖单元测试运行器(无需安装 PHPUnit)+ 零依赖 HTTP 压测工具,CI 一键跑绿。
- 中文优先,注释详尽:公共 API 与关键路径均配清晰中文注释,并附 29 章中文手册与自建文档站,对非英语开发者极度友好。
- AI 原生(零依赖):内置
Mtphp\Ai\,开箱即用地集成大模型——网关(兼容 OpenAI / DeepSeek / 通义千问等)、SSE 流式、结构化抽取、多模态视觉、Embeddings、向量检索(RAG)、工具调用 Agent、语义缓存、多供应商故障转移,并配套ai:config/ai:ping/ai:chat/ai:doc/make:ai/mcp等命令,让 PHP 框架在 AI 时代直接有竞争力。
目录速览
mtphp/ 框架核心源码(命名空间 Mtphp\)
app/ 业务应用(命名空间 App\)
config/ 配置文件
public/ Web 根目录(唯一入口 index.php)
runtime/ 运行时生成(路由缓存 / 模板编译 / 日志)
环境要求
- PHP ≥ 8.0(已全面使用强类型、联合类型等 PHP 8 特性)
- 扩展:
pdo/pdo_mysql/json/mbstring - 高并发常驻模式需
swoole扩展(仅 Linux / WSL)
Windows 开发机请自行安装 PHP ≥ 8.0(建议 8.3,需含
php.ini+ OPcache/JIT),并确保php已进入系统 PATH;随后即可用php -S或php bin/server.php运行演示。
安装
通过 Composer 安装(推荐):
composer require kianhugh/mtphp
📦 Packagist 包页:https://packagist.org/packages/kianhugh/mtphp | 📚 中文文档:http://mtphp.msiyu.com/docs
也可直接克隆本仓库源码使用——框架零依赖,即使不装 Composer 也能运行演示与测试。
快速开始
cd <项目根目录> # 即本仓库根目录(mtphp/) composer dump-autoload # 生成自动加载(未装 composer 也可直接运行演示) php -S 127.0.0.1:8080 serve.php # 启动内置服务器(开发演示;serve.php 为前端控制器) # 访问 # http://127.0.0.1:8080/ # http://127.0.0.1:8080/hello/世界 # http://127.0.0.1:8080/api/ping
Swoole 常驻服务器(高并发,需 Linux / WSL)
php bin/server.php # 默认 0.0.0.0:9501
设计原则
- 使用简单、配置简单:核心组件零配置即可用,开箱即跑。
- 中文注释:公共 API 与关键路径均配有清晰中文注释,便于二次开发与维护。
文档站点
📚 在线中文文档(已部署,无需本地启动即可浏览):http://mtphp.msiyu.com/docs —— 共 28 章,涵盖安装、路由、数据库、模型、模板、中间件、Swoole 常驻、测试与压测等全部主题。
框架同时自带一个用自身搭建的文档站,演示“调用简单、功能主流”:左侧目录菜单,右侧正文,当前首页内容直接作为文档序言(本地开发时用)。
# 启动后访问 # http://127.0.0.1:8080/docs # 序言(即首页欢迎内容) # http://127.0.0.1:8080/docs/1 # 章节(slug 为章节编号 1~28)
文档源就是根目录的 使用手册.md,按二级标题(##)自动切分为章节并生成左菜单,手册与网站同源、永不失同步。
AI 原生能力(Mtphp\Ai)
mtphp 不只是"能调一个 HTTP 接口",而是把 AI 做成了框架一等公民,且零依赖(复用自带 Mtphp\Http\Client,无需 Guzzle)。网关兼容 OpenAI / DeepSeek / 通义千问(dashscope)等主流供应商。
核心组件(Mtphp\Ai\):
Gateway:兼容 OpenAI 接口的聊天网关;支持 SSE 流式、JSON 结构化抽取(structured(),含供应商不支持时的正则兜底)、Embeddings 向量化(按供应商batch_size自动拆分)、多模态视觉对话(vision(),图片自动 base64 编码);VectorStore:向量检索(内存 / 文件 / Redis / MySQL 四种后端),支撑 RAG 与语义缓存;Agent:工具调用(tool calling)智能体,支持系统提示词与多轮记忆,把你的业务接口变成 Agent 的工具箱;SemanticCache:按语义相似度命中历史回答,省 token、降延迟;FallbackGateway:多供应商故障转移(openai → deepseek → 通义…),任一失败自动切下一个;Manager+ai()助手 +config/ai.php:一行ai()->provider()->chat(...)即可调用;并内置summarize()/translate()/classify()/extract()等高频任务便捷方法。
可靠性加固:TLS 校验默认开启;对 429/5xx 按指数退避自动重试(尊重 Retry-After);回收 token 用量(getLastUsage());可注入 PSR-3 或 callable 日志器做全链路可观测。
命令行(详见 使用手册.md 第 29 章):
php bin/mtphp ai:config --provider=dashscope --key=sk-xxx --model=qwen-plus # 快速配置(写入 .env) php bin/mtphp ai:ping # 连通性/密钥自检(耗时+token) php bin/mtphp ai:chat --message="用一句话介绍 mtphp" --stream # 对话/验证 php bin/mtphp ai:chat --message="描述这张图" --image=./screenshot.png # 多模态视觉问答 php bin/mtphp ai:doc --index && php bin/mtphp ai:doc --ask="如何定义路由?" # 文档 RAG 助手 php bin/mtphp make:ai --desc="用户列表接口,支持分页" --name=User # 自然语言生成代码(六类) php bin/mtphp make:ai --type=model --desc="文章模型" --name=Post -m # 生成模型并联动建表迁移 php bin/mtphp mcp # 启动 MCP 服务,对接 Claude/Cursor
make:ai 支持六类脚手架:controller / model / middleware / command / job / seed,每类都有针对性系统提示词与落地目录;生成后自动 php -l 校验,采用"先写临时文件、校验通过才落盘"策略——语法错误只展示、绝不覆盖已有好文件。
mcp 内置工具:mtphp_list_routes / mtphp_make_model / mtphp_run_migration / mtphp_explain_error / mtphp_read_file(带目录穿越防护)/ mtphp_run_sql(只读 SQL 白名单,杜绝误删改)/ mtphp_ai_chat(让 AI 编程助手直接调用已配置大模型)。