import{_ as i,o as a,c as n,a2 as l}from"./chunks/framework.B-QBKwc1.js";const F=JSON.parse('{"title":"为什么选择我们","description":"本页从架构可维护性、功能开箱即用与工程可持续性三个维度说明选择本项目的理由,技术选型对比时可作为评估依据。","frontmatter":{},"headers":[],"relativePath":"zh/why.md","filePath":"zh/why.md"}'),h={name:"zh/why.md"};function t(p,s,k,e,r,d){return a(),n("div",null,[...s[0]||(s[0]=[l(`

1.2 为什么选择我们 ​

概述

本页从架构可维护性、功能开箱即用与工程可持续性三个维度说明选择本项目的理由,技术选型对比时可作为评估依据。

声明式 CRUD,开发效率倍增 ​

项目最大的特点是声明式 CRUD 架构。只需在数据库中建好表,通过代码生成器即可一键生成完整的前后端 CRUD 模块:

bash
# 通过 Web 界面操作,选择表 → 配置 → 生成
# 或通过命令行
php think generate:code think_example

生成器会自动完成:

一个标准 CRUD 模块从手写到调试通常需要 1-2 天,使用生成器只需几分钟。

完整的 RBAC 权限体系 ​

系统内置了企业级的基于角色的访问控制:

前端通过 v-perm 指令自动控制按钮的显示和隐藏,与后端权限保持一致。

声明式 ThinkPHP 架构 ​

项目遵循 ThinkPHP 最佳实践,代码结构清晰。以 app/logic/ExampleLogic.php 为例:

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
    {
        // 删除前校验
    }
}

控制器只需调用通用方法:

php
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+ 个常用业务模块,开箱即用:

这些模块不仅可以直接使用,也是学习本框架开发模式的最佳参考。

Vue3 + ElementPlus 前端 ​

前端采用主流技术栈,开发体验优秀:

前端开发常用命令:

bash
cd ui
pnpm install    # 安装依赖
pnpm dev        # 启动开发服务器 (http://localhost:8001)
pnpm build      # 生产环境构建

开箱即用的开发体验 ​

从获取源码到运行项目,只需几步:

bash
# 1. 从官方网站下载源码包并解压
cd RXThinkCMF_ThinkPhp8_EleVue

# 2. 安装依赖
composer install

# 3. 配置 .env(数据库、JWT 密钥)

# 4. 导入数据库
mysql -u root -proot rxthinkcmf.thinkphp8.elevue < document/mysql/rxthinkcmf.thinkphp8.elevue.sql

# 5. 启动后端
php think run

# 6. 启动前端
cd ui && pnpm install && pnpm dev

访问 http://localhost:8001 即可使用。默认超级管理员账号 admin / 123456 可直接登录。

多数据库支持 ​

通过环境变量一键切换五种数据库:

ini
; .env
[DATABASE]
TYPE = mysql      ; MySQL(默认)
TYPE = pgsql      ; PostgreSQL
TYPE = sqlsrv     ; SQL Server
TYPE = oracle     ; Oracle
TYPE = sqlite     ; SQLite

业务代码零修改,ORM 自动处理 SQL 差异。

多租户与数据权限 ​

内置企业级多租户隔离体系:

持续更新 ​

项目持续迭代,紧跟技术发展:

适用场景 ​

项目适合以下场景:

`,44)])])}const y=i(h,[["render",t]]);export{F as __pageData,y as default};