构建我们一直想要的 CMS:MonkeysCMS(招募贡献者)
发布: (2025年12月22日 GMT+8 06:57)
5 min read
原文: Dev.to
Source: Dev.to
介绍
有两种类型的 CMS 项目:
- 一开始很容易 —— 直到你需要真正的结构、关系、权限和性能。
- 功能强大但重量级 —— 配置面广,更新路径脆弱,并且有大量“CMS 仪式”。
MonkeysCMS 是一次尝试,将 Drupal 和 WordPress 的最佳理念结合起来,并在 MonkeysLegion 框架之上以现代、代码优先的方式重新构建。
如果你喜欢构建系统(实体、模式、权限、内容建模、工具),欢迎你的帮助,将其塑造成真正的社区 CMS。
核心概念
- Code‑first entities – 内容类型是 PHP 类,通过属性定义(不使用 YAML 堆栈,也不使用 UI‑first 配置)。
- Auto‑sync schema – 启用模块后立即创建表(无需迁移或额外的 CLI 步骤)。
- True modularity – 隔离的模块拥有命名空间、依赖关系和生命周期钩子。
- Normalized relational database – 正规化的关系数据库,正确处理关联,避免传统 EAV 的痛点。
- API‑first – 为 CMS 操作(内容、用户、权限、分类法、菜单、设置、模块…)提供 REST 端点。
- Modern PHP – 要求 PHP 8.4+,使用严格类型和现代模式。
仓库已提供的内容
- 模块启用时触发实体类的发现,读取它们的属性,生成 SQL 并执行模式创建。
- 基于属性的模型,包括
ContentType、Field、Relation、Id,以及映射的一组字段类型。 - 系统角色和权限模式,包括在模块启用时自动注册实体权限。
- 词汇表、层级术语以及实体‑术语关联。
- 端点和 CLI 命令(
./monkeys …),通过 MonkeysLegion‑Cache 实现缓存,以及由.mlc配置驱动的主题系统。
注意: 项目仍处于早期阶段——GitHub 仓库目前显示 0 个 issue 和 0 个 PR,这意味着贡献者可以在很大程度上影响架构和约定。
为什么现在贡献?
- 方向明确:代码优先、模块化、关系型、API 优先。
- 基础已经搭建好。
- 项目尚未僵化成“这就是一直以来的样子”。
如果你曾渴望拥有像 Drupal 那样的结构化 CMS,却又想要现代框架的开发者体验,那么现在就是时机。
贡献方向
| 区域 | 建议改进 |
|---|---|
| Schema generator | 加固索引、约束、差异、安全更新 |
| Entity hydration / serialization | 边缘情况处理 |
| Relations | 多对多辅助工具、级联规则、预加载模式 |
| Permissions | 中间件、可审计性(拒绝原因、权限追踪) |
| Consistency | 错误格式、分页约定、过滤/排序规范 |
| API docs | OpenAPI 规范、示例客户端、Postman 集合 |
| CLI | 模块生命周期改进、模式预览 |
| Revisions & workflows | 发布工作流、审核状态(属性已暗示这些概念) |
| Media handling | 图片/文件/相册字段类型 |
| Theme manager | 更好的模板引擎集成 |
| Starter themes | 真实案例模板 |
| Testing | 单元 + 集成覆盖率(模式生成、权限检查、分类树、CRUD 流程) |
要求与快速开始
# Requirements
# - PHP 8.4+
# - MySQL 8+ or SQLite
# - Composer 2.x
git clone https://github.com/MonkeysCloud/MonkeysCMS.git
cd MonkeysCMS
composer install
cp .env.example .env
# Run the built‑in server
composer serve
# or
./monkeys serve
贡献流程
- Fork 代码仓库。
- 为你的更改创建一个分支。
- 提交拉取请求(Pull Request)。
新手友好建议
- 对文档或测试进行小幅改进。
- 小的 bug 修复或代码风格微调。
我们将在进行中共同制定约定。
愿景
- 像应用代码一样定义内容模型。
- 启用模块 → 立即获得模式、权限和 API。
- 获取“CMS 功能”(内容类型、分类法、菜单、区块、角色),无需传统复杂性。
如果这与你的需求相符,请加入我们。
仓库与联系
- 仓库: https://github.com/MonkeysCloud/MonkeysCMS
- 构建于: MonkeysLegion 框架
- Slack: https://join.slack.com/t/monkeyslegion/shared_invite/zt-36jut3kqo-WCwOabVrVrhHBln4xhMATA
有问题吗?在 GitHub 上留下评论或打开 issue。让我们一起打造伟大的项目。