PHPackages                             thinkcmf/thinkcmf - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. thinkcmf/thinkcmf

ActiveProject[Framework](/categories/framework)

thinkcmf/thinkcmf
=================

ThinkCMF based on ThinkPHP 8.x , it is a free and open source Content Management Framework(CMF)

v8.0.1(1y ago)2.2k19.3k↓25%594[190 issues](https://github.com/thinkcmf/thinkcmf/issues)MITHTMLPHP &gt;=8.0.0

Since Apr 1Pushed 5mo ago164 watchersCompare

[ Source](https://github.com/thinkcmf/thinkcmf)[ Packagist](https://packagist.org/packages/thinkcmf/thinkcmf)[ Docs](http://www.thinkcmf.com/)[ RSS](/packages/thinkcmf-thinkcmf/feed)WikiDiscussions 8.0 Synced 1mo ago

READMEChangelog (10)Dependencies (6)Versions (46)Used By (0)Security (5)

ThinkCMF 8.1.0 开发版
==================

[](#thinkcmf-810-开发版)

**`8.1.0`正在紧张开发中，请不要用于正式环境！实际项目请下载最新正式版`8.0.1`**

### 主要特性

[](#主要特性)

- `MIT`开源协议,让你飞得更高,行得更远
- 基于`ThinkPHP 8.1`
- 多应用架构
- 应用中心
- 支持插件机制
- 支持多模板
- 支持模板可视化设计
- 支持`RESTful API`
- 支持`Swagger API`文档
- 支持数据库迁移
- 支持`Docker`运行

### 功能列表

[](#功能列表)

- 基础网站功能（导航、幻灯片、友情链接）
- 后台多角色权限管理
- 云存储
- 微信小程序
- API
- API基础功能
- API用户基础功能
- 傻瓜式模板
- 后台模板设计
- 后台不存在模板文件检测并切换到默认模板
- 后台加密码
- 全站静态文件CDN切换
- 多应用
- 前台多模板
- 后台多模板
- 模板命名空间
- 多语言
- 插件功能
- 插件钩子功能
- 插件在线安装
- 应用在线安装
- 模板在线安装
- 数据库迁移
- 插件和应用命令行工具
- 轻量级命令行工具`php think cli`
- 应用发布打包工具
- 插件发布打包工具
- 模板发布打包工具
- 应用支持`composer`第三方库
- 插件支持`composer`第三方库
- 邮件发送
- Docker容器
- API支持`Swagger`
- `Swagger`规范
- `URL`美化
- 应用导航共享
- 应用后台菜单注解
- 应用钩子配置
- 用户操作配置
- URL规则配置
- 网站安装功能
- 会员管理
- 默认过滤器`htmlspecialchars`
- 文件上传
- 验证码优化
- 强制所有创建，更新，删除操作携带Token请求
- 基础控制器`validateFailError()`方法
- 支持`.env`环境配置

### 即将废弃

[](#即将废弃)

- `app`模式下后台所有`非GET`请求提交接口,请后台模板开发者尽快升级到`API`接口

### 开发手册

[](#开发手册)

### Git仓库

[](#git仓库)

1. 码云: 主要仓库
2. GitHub: 国际镜像

### 环境推荐

[](#环境推荐)

> PHP 8.2
> MySQL 5.7+
> 打开rewrite

### 最低环境要求

[](#最低环境要求)

> PHP 8.1
> MySQL 5.5
> 打开rewrite

### 安装程序

[](#安装程序)

1. public目录做为网站根目录,入口文件在 public/index.php
2. 配置好网站，请访问[http://你的域名](http://%E4%BD%A0%E7%9A%84%E5%9F%9F%E5%90%8D)

enjoy your cmf~!

### Swagger

[](#swagger)

#### 开启Swagger

[](#开启swagger)

后台应用中心-&gt;插件管理安装 `Swagger`插件(要求PHP8.1及以上)

#### 相关文档

[](#相关文档)

**OpenAPI** ()
**Swagger-PHP** ()

### Docker

[](#docker)

如果需要`Docker`下运行`ThinkCMF`,可以使用下面的仓库

### 升级指导

[](#升级指导)

#### 8.0.0升级到8.0.1

[](#800升级到801)

1. `composer update`

#### 6.0.9升级到8.0.0

[](#609升级到800)

1. 更改根目录`composer.json`的`require`下列包版本

```
"php": ">=8.0.0",
"thinkcmf/cmf-app": "^8.0.0",
"thinkcmf/cmf-install": "^8.0.0",
"thinkcmf/cmf-api": "^8.0.0",
"thinkcmf/cmf-appstore": "^2.0",
"thinkcmf/cmf-root": "^2.0"
```

2. `composer update`
3. 后台所有非ajax的`POST`请求，改为`GET`请求
4. 如自定义后台模板未用`admin.js`,请注意所有POST请求时在`header`中增加`XX-Device-Type`和`Authorization`
5. 把`data/config/template.php`中`cmf_admin_default_theme`后台模板改为`admin_default`

#### 6.0.8升级到6.0.9

[](#608升级到609)

1. `composer update`

#### 6.0.7升级到6.0.8

[](#607升级到608)

1. `composer update`

#### 6.0.6升级到6.0.7

[](#606升级到607)

1. `composer update`

#### 6.0.5升级到6.0.6

[](#605升级到606)

1. `composer update`

#### 6.0.4升级到6.0.5

[](#604升级到605)

1. 根目录`composer.json`的`require-dev`属性值请更新
2. `composer update`

#### 6.0.3升级到6.0.4

[](#603升级到604)

1. 安装静态资源包`composer require thinkcmf/cmf-root`
2. 根目录`composer.json`的`minimum-stability`,`require`,`config`属性值请更新
3. `composer update`

#### 6.0.2升级到6.0.3

[](#602升级到603)

1. `composer update`

#### 6.0.1升级到6.0.2

[](#601升级到602)

1. composer.json文件里的`autoload.psr-4.themes\\`改为`public/themes`
2. 安装应用市场包`composer require thinkcmf/cmf-appstore`
3. `public/themes`,`public/static`静态文件也有更新
4. 删除`public/themes/admin_simpleboot3/admin`目录下的`app_store`目录
5. `composer update`

### 更新日志

[](#更新日志)

#### 8.1.0 coding~

[](#810-coding)

- 升级到`ThinkPHP8.1`
- 优化多语言识别流程
- 修复模板文件列表设计报错
- 修复模板卸载不删除多语言数据
- 修复模板更新不更新多语言配置
- 修复后台切换多语言影响前台语言

#### 8.0.1

[](#801)

- 增加前台模板多语言功能
- 增加多语言设置功能
- 后台模板全面升级为`bootstrap5`
- 升级`FontAwesome`图标到`v6.4.2`
- 增加后台设置统一入口
- 增加`cmf_lang_url`函数
- 增加后台模板自由设计
- 优化API跨域处理
- 优化插件安装卸载更新提示
- 优化应用安装卸载更新提示
- 优化自由模板组件解析
- 修复插件API基类validate报错

#### 8.0.0

[](#800)

- 升级到`ThinkPHP8.0`
- 增加后台管理本地文件上传
- 增加`admin.js`对`RESTful API`支持
- 增加插件`PluginRestAdminBaseController`基类
- 后台所有POST请求需要传token
- 后台使用`RESTful API`
- 优化模板标签库加载忽略不存在标签库
- 优化后台模板
- 更改后台默认模板为`admin_default`
- 增加后台风格`arcoadmin`
- 增加后台模板支持`bootstrap5`
- 完善前台默认模板`default`

#### 6.0.9

[](#609)

- 增强前台模板自由控件功能支持拖拽
- 增加后台API权限管理
- 增加后台API导入
- 增加`Swagger`插件
- 增加模板块控件css样式功能
- 增加模板富文本`rich_text`变量类型
- 增加应用支持系统钩子
- 增加安装程序数据库迁移功能
- 增加插件执行顺序设置
- 增加`cmf_get_file_url`,`cmf_utf8_bom`函数
- 优化后台开发者面板支持插件扩展
- 优化后台插件管理
- 优化后台首页
- 优化插件设置
- 优化权限认证

#### 6.0.8

[](#608)

- 更新TP到`6.0.14`
- 增加应用轻量级命令行第三方库支持
- 增加注册登录和验证码界面第三方验证码支持
- 增加后台管理员个人邮件功能
- 增加应用支持导入系统钩子功能
- 优化上传对话框逻辑
- 优化钩子管理界面
- 优化后台管理员添加编辑逻辑增加安全性
- 优化缓存清理
- 优化路由识别
- 优化系统文件加载
- 修复后台部分URL刷新不加载
- 修复幻灯片页面管理报错
- 补全缺失语言包

#### 6.0.7

[](#607)

- 升级到`tp6.0.13`
- 增加安装时检查API配置
- 增加前台模板自由控件功能
- 增加`widgetsHead`,`widgetsBlock`,`widgetsScript`标签
- 增加`css`标签相同文件不重复引入功能
- 增加`js`标签相同文件不重复引入功能
- 修复后台菜单添加和编辑子菜单父级不选中
- 修复后台菜单编辑删除报错
- 修复应用市场模板升级报错
- 增加`php think cli`支持`/`分隔符
- 修复`tree类`相关bug

#### 6.0.6

[](#606)

- 后台模板设计增强，支持多终端
- 增加命令行卸载应用
- 增加网页卸载应用
- 增加命令行卸载插件
- 增加`tree`标签
- 后台菜单和导航菜单管理使用`tree`标签
- 优化应用插件模板升级安装逻辑
- 优化应用打包格式
- 去除`eval`的使用
- 修复API跨域问题
- 修复邮件验证码获取用户信息错误

#### 6.0.5

[](#605)

- 增加数据库迁移
- 增加模板在线安装
- 增加轻量级命令行工具`php think cli`
- 增加应用发布打包工具
- 增加插件发布打包工具
- 增加模板发布打包工具
- 优化命令行程序
- 修复命令行下常量`APP_PATH`缺失
- 独立`Docker`容器为单独仓库

#### 6.0.4

[](#604)

- 调整PHP版本最低限制为`7.4.0`
- 增加应用在线安装
- 增加应用管理
- 增加安装时更多目录可写检查
- 增加`cmf_get_app_class`函数
- 增加`cmf_is_cli`函数
- 增加`cmf_test_write`函数
- 优化用户资料编辑
- 优化函数`cmf_scan_dir`
- 优化安装时数据库连接处理
- 修复`cmf_curl_get`不支持https
- 修复`/home/slides/{id}`API注解错误
- 修复验证码登录API报错
- 修复回收站删除、还原报错
- 修复API路由加载
- 修复插件更新无法删除旧钩子

#### 6.0.3

[](#603)

- 自定义分页类
- 优化后台模板设计
- 优化后台菜单导入
- 修复验证器使用错误
- 修复路由禁用报错
- 修复插件模板异常类引入错误

#### 6.0.2

[](#602)

- 增加插件市场支持插件在线安装
- 增加后台不存在模板文件检测并切换到默认模板
- 移动swagger功能到插件
- 优化插件后台权限检查
- 修复url美化报错
- 规范env命名，方便编辑器跳转
- 修正themes命名空间
- 修复角色删除问题
- 修复管理员删除问题
- 修复幻灯片删除问题
- 优化用户注册
- 优化后台菜单导入

#### 6.0.1

[](#601)

- 兼容php8.0
- 升级到`tp6.0.7`
- 增加插件后台基类`admin_init`钩子
- 优化cmf版本获取
- 优化`cmf_clear_cache()`函数
- 修复插件URL美化报错
- 修复上传报错
- 修复`demo应用 page/nav`数据源演示报错
- 修复导入后台菜单报错
- 修复url美化问题
- 修复头像上传报错

#### 6.0.0

[](#600)

- 升级到ThinkPHP6.0
- API增加Swagger支持
- 增加`.env`环境配置支持

###  Health Score

60

—

FairBetter than 99% of packages

Maintenance53

Moderate activity, may be stable

Popularity55

Moderate usage in the ecosystem

Community38

Small or concentrated contributor base

Maturity81

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 82.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~71 days

Recently: every ~210 days

Total

45

Last Release

179d ago

Major Versions

5.0.x-dev → v6.0.02021-01-02

5.1.x-dev → v6.0.32021-09-27

6.0.x-dev → v8.0.02023-09-27

PHP version history (7 changes)5.0RC1PHP &gt;=5.5.0

5.0-RC4PHP &gt;=5.4.0

5.1.0-betaPHP &gt;=5.6.0

v6.0.0PHP &gt;=7.1.0

v6.0.5PHP &gt;=7.4.0

v8.0.0PHP &gt;=8.0.0

8.0.x-devPHP &gt;=8.1.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/8df601675fe6d48d5ddf9fcff6d96284c58ae7190e2747e003b5c5125c508d98?d=identicon)[thinkcmf](/maintainers/thinkcmf)

---

Top Contributors

[![simplewindorg](https://avatars.githubusercontent.com/u/6101935?v=4)](https://github.com/simplewindorg "simplewindorg (2175 commits)")[![wzxaini9](https://avatars.githubusercontent.com/u/7598438?v=4)](https://github.com/wzxaini9 "wzxaini9 (136 commits)")[![yangguangwuwu](https://avatars.githubusercontent.com/u/24450871?v=4)](https://github.com/yangguangwuwu "yangguangwuwu (126 commits)")[![thinkcmf](https://avatars.githubusercontent.com/u/6211558?v=4)](https://github.com/thinkcmf "thinkcmf (79 commits)")[![jsRuner](https://avatars.githubusercontent.com/u/5819716?v=4)](https://github.com/jsRuner "jsRuner (25 commits)")[![hiwowoer](https://avatars.githubusercontent.com/u/137462386?v=4)](https://github.com/hiwowoer "hiwowoer (24 commits)")[![dusite271301671](https://avatars.githubusercontent.com/u/45221222?v=4)](https://github.com/dusite271301671 "dusite271301671 (10 commits)")[![wanglelecc](https://avatars.githubusercontent.com/u/11265153?v=4)](https://github.com/wanglelecc "wanglelecc (9 commits)")[![iYting](https://avatars.githubusercontent.com/u/17744874?v=4)](https://github.com/iYting "iYting (7 commits)")[![zhungkewei](https://avatars.githubusercontent.com/u/30974113?v=4)](https://github.com/zhungkewei "zhungkewei (6 commits)")[![hihelp](https://avatars.githubusercontent.com/u/48826738?v=4)](https://github.com/hihelp "hihelp (6 commits)")[![kf2006](https://avatars.githubusercontent.com/u/43433091?v=4)](https://github.com/kf2006 "kf2006 (6 commits)")[![crazys1973](https://avatars.githubusercontent.com/u/23290527?v=4)](https://github.com/crazys1973 "crazys1973 (5 commits)")[![SunJary](https://avatars.githubusercontent.com/u/44861528?v=4)](https://github.com/SunJary "SunJary (5 commits)")[![xskjs888](https://avatars.githubusercontent.com/u/22831759?v=4)](https://github.com/xskjs888 "xskjs888 (2 commits)")[![halflifewfr](https://avatars.githubusercontent.com/u/29445267?v=4)](https://github.com/halflifewfr "halflifewfr (2 commits)")[![jayknoxqu](https://avatars.githubusercontent.com/u/40152552?v=4)](https://github.com/jayknoxqu "jayknoxqu (2 commits)")[![lifeha](https://avatars.githubusercontent.com/u/5966373?v=4)](https://github.com/lifeha "lifeha (1 commits)")[![chemcms](https://avatars.githubusercontent.com/u/6110643?v=4)](https://github.com/chemcms "chemcms (1 commits)")[![gengqiupeng](https://avatars.githubusercontent.com/u/13412304?v=4)](https://github.com/gengqiupeng "gengqiupeng (1 commits)")

---

Tags

frameworkormcmfthinkphpthinkcmf

### Embed Badge

![Health badge](/badges/thinkcmf-thinkcmf/health.svg)

```
[![Health](https://phpackages.com/badges/thinkcmf-thinkcmf/health.svg)](https://phpackages.com/packages/thinkcmf-thinkcmf)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
