Search by

kianhugh / mtphp

KianHugh

mtphp - 高性能、高并发 PHP 框架

Package info

github.com/KianHugh/mtphp

pkg:composer/kianhugh/mtphp

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.0 2026-11-05 04:57 UTC

This package is auto-updated.

Last update: 2026-11-05 04:58:32 UTC


README

CI Packagist License: MIT Docs

版权所有 (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 编程助手直接调用已配置大模型)。