Become a sponsor

项目最大的特点是声明式 CRUD 架构。只需在数据库中建好表,通过代码生成器即可一键生成完整的前后端 CRUD 模块:
# 通过 Web 界面操作,选择表 → 配置 → 生成
# 或通过命令行
php think generate:code think_example生成器会自动完成:
一个标准 CRUD 模块从手写到调试通常需要 1-2 天,使用生成器只需几分钟。
系统内置了企业级的基于角色的访问控制:
sys:user:add、sys:user:delete 等)前端通过 v-perm 指令自动控制按钮的显示和隐藏,与后端权限保持一致。
项目遵循 ThinkPHP 最佳实践,代码结构清晰。以 app/logic/ExampleLogic.php 为例:
// 逻辑层只需声明属性配置,无需编写 CRUD 代码
class ExampleLogic extends BaseLogic
{
/**
* 关联的模型类
*
* @var string
*/
protected string $modelClass = Example::class;
/**
* LIKE 模糊匹配字段
*
* @var array
*/
protected array $pageLikeFields = ['name'];
/**
* 精确匹配字段
*
* @var array
*/
protected array $pageEqFields = ['status'];
/**
* 默认排序规则
*
* @var array
*/
protected array $pageOrderBy = ['field' => 'sort', 'type' => 'asc'];
/**
* 唯一性校验字段
*
* @var array
*/
protected array $uniqueFields = ['name'];
/**
* 枚举显示名映射
*
* @var array
*/
protected array $serializeMaps = ['status' => 'example_status'];
/**
* 删除前处理:业务约束校验
*
* @param int $id 记录 ID
* @return void
*/
protected function beforeDelete(int $id): void
{
// 删除前校验
}
}控制器只需调用通用方法:
class ExampleController extends BaseController
{
protected ExampleLogic $logic;
protected function initialize(): void
{
$this->logic = new ExampleLogic();
}
#[Log('案例演示-查询分页', Log::TYPE_QUERY)]
#[Permission('sys:example:page', '案例分页')]
public function page(): Json
{
return parent::_index($this->logic); // 一行搞定分页查询
}
}所有模块遵循相同的分层模式,新成员上手快,代码可维护性强。
系统预置了 20+ 个常用业务模块,开箱即用:
这些模块不仅可以直接使用,也是学习本框架开发模式的最佳参考。
前端采用主流技术栈,开发体验优秀:
前端开发常用命令:
cd ui
pnpm install # 安装依赖
pnpm dev # 启动开发服务器 (http://localhost:8001)
pnpm build # 生产环境构建从获取源码到运行项目,只需几步:
# 1. 从官方网站下载源码包并解压
cd thinkphp6
# 2. 安装依赖
composer install
# 3. 配置 .env(数据库、JWT 密钥)
# 4. 导入数据库
mysql -u root -proot rxthinkcmf.thinkphp6.elevue < document/mysql/rxthinkcmf.thinkphp6.elevue.sql
# 5. 启动后端
php think run
# 6. 启动前端
cd ui && pnpm install && pnpm dev访问 http://localhost:8001 即可使用。默认超级管理员账号 admin / 123456 可直接登录。
通过环境变量一键切换五种数据库:
; .env
[DATABASE]
TYPE = mysql ; MySQL(默认)
TYPE = pgsql ; PostgreSQL
TYPE = sqlsrv ; SQL Server
TYPE = oracle ; Oracle
TYPE = sqlite ; SQLite业务代码零修改,ORM 自动处理 SQL 差异。
内置企业级多租户隔离体系:
BaseTenantLogic 基类自动处理 tenant_id 过滤与填充tenant_id=0 的用户不受租户隔离限制,创建数据时自动代入默认租户项目持续迭代,紧跟技术发展:
项目适合以下场景: