严格分层,副作用解耦
每个请求沿固定路径流动,各层职责单一、边界清晰;业务逻辑与日志、通知、缓存等副作用彻底分离,代码生成器也遵循同一套约定。
Controller
app/adminapi/controller接收请求、参数校验、调用 Service、返回响应
不碰 Repository / Model
Service
app/service业务逻辑编排、事务管理、提交后投递队列
不写 Db::table(),不存请求态
Repository
app/repository封装所有 ORM 查询,唯一数据访问出口
不掺业务逻辑
Model
app/modelORM 映射、关联关系、访问器 / 修改器
不写查询逻辑
主流程只写业务,副作用交给队列进程
php start.php start 同时拉起 HTTP、定时任务、队列与 WebSocket。操作日志和消息走 Redis 队列,不必再单独跑消费命令;事务回滚则副作用不会发出。
class UserService extends Service
{
protected UserRepository $userRepository;
public function register(array $data): int
{
return $this->runInTransaction(function () use ($data) {
$id = $this->userRepository->create($data);
// 提交后再投递队列,回滚不会发出副作用
$this->afterCommit(fn () => Redis::send('welcome', ['user_id' => $id]));
return $id;
});
}
}php start.php start
一条命令拉起 HTTP / 定时 / 队列 / WebSocket
webman HTTP
常驻内存处理管理端 / 用户端请求
scheduler
到点任务投递队列,单进程避免重复判定
OperationLogConsumer
操作日志异步落库,请求不被拖慢
WebSocketServer
实时通知、在线管理员、强制下线
全栈 CRUD 生成,reload 即生效
CLI 或管理后台选表即可生成分层代码。常驻进程下执行 php start.php reload,新路由立刻生效,不用重启整机。
选定数据表
已有表即可生成
make:crud
CLI 或可视化生成
分层落盘
前后端一次齐套
reload 生效
新路由立刻可用
php webman make:crud
一条命令生成 Model / Repository / Service / Controller / 路由 / 语言包 / Vue 列表与表单
可视化代码生成器
管理后台「开发工具 → 代码生成器」选表即可,产物与 CLI 同一套约定
常驻进程 reload
生成后执行 php start.php reload,不必重启 PHP-FPM 或整机
Generating full-stack files…
- app/model/Article.phpModel
- app/repository/ArticleRepository.phpRepository
- app/service/ArticleService.phpService
- app/adminapi/.../ArticleController.phpController
- app/adminapi/validate/ArticleValidate.phpValidate
- admin/src/views/article/index.vueVue
一次生成全套分层文件
生成物走同一套 Controller → Service → Repository → Model 约定,可视化与 CLI 产物一致。
- app/model/{Name}.php
- app/repository/{Name}Repository.php
- app/service/{Name}Service.php
- app/adminapi/controller/{Name}Controller.php
- admin/src/api 与列表 / 表单页
- 路由与语言包
- php start.php reload
php webman yd:update
按 database/updates/vX.Y.Z/ 语义化版本顺序执行未应用脚本,自动套用表前缀,已应用版本记入 system_upgrades,幂等可断点续跑。
新装完整 · 老库增量
全新安装走 Web 向导或 php webman install;老实例用 --dry-run 预览、--baseline 确立基线。Docker Compose 可一键拉起 webman / MySQL / Redis。
不是空模板,是完整地基
权限、支付、微信、消息、存储、日志、队列、WebSocket 与升级机制全部内置,新项目第一天就能写业务。
webman 常驻进程
php start.php start 同时拉起 HTTP、定时、队列与 WebSocket
RBAC + 数据范围
角色 / 菜单 / 按钮级权限,叠加部门数据范围控制
全栈代码生成器
php webman make:crud 生成 Model→Service→Controller→Vue
yd:update 升级
php webman yd:update 语义化增量 SQL,幂等可断点续跑
严格分层架构
Controller→Service→Repository→Model,进程单例不存请求态
Redis 队列
操作日志与消息异步消费,主流程不阻塞
WebSocket 实时通道
在线管理员、实时通知、强制下线
操作 / 登录日志
中间件自动记录,队列异步落库,可导出审计
消息中心
短信 / 微信 / 站内信模板,统一异步下发
支付网关
微信支付 + 支付宝,覆盖小程序 / H5 / APP 等场景
微信生态
公众号 OAuth、小程序、模板消息、自动回复
余额 / 积分
用户资产流水、充值与积分账本开箱可用
文章内容
分类、标签、富文本文章,支撑内容运营
多驱动存储
本地 / 阿里云 OSS / 腾讯 COS / 七牛,一键切换
OpenAPI 文档
Swagger 由代码自动生成,始终同步
安装 / Docker
Web 向导或 php webman install,Compose 一键起服务
一套后端,驱动全部终端
管理后台
Vue 3 + Element Plus
PC 官网
Nuxt 3 + Naive UI
移动多端
UniApp · 11+ 平台
小程序
微信 / 支付宝 / 百度 / QQ

