Skip to content

概述

系统的底层依赖库与服务封装目录(crmeb/app/basic/)提供了系统运行所需的基础基类、驱动封装、底层工具类和通用辅助服务。这些模块与上层业务逻辑解耦,为业务开发提供高复用性的基础设施支撑。

IMPORTANT

运行时独立性说明: 系统自 2026-07 起已实现业务运行时独立性,业务调用栈不再依赖任何加密文件:

  1. 控制器基类全面统一使用明文基类 app\basic\OpenBaseController
  2. 全局公共辅助函数加载自明文 app/helpers_open.php
  3. Token 解析统一走明文 crmeb\utils\JwtAuth::parse()
  4. 新增业务代码禁止引入过时的加密类库。

核心目录架构

crmeb/
├── basic/              # 基础类目录
│   ├── BaseJobs.php           # 异步队列任务基类
│   ├── BaseModel.php          # ORM 数据模型基类
│   ├── BaseUpload.php         # 文件上传驱动基类
│   └── ...
├── exceptions/         # 自定义异常类
│   ├── AdminException.php     # 后台异常
│   ├── ApiException.php       # API 异常
│   ├── AuthException.php      # 鉴权异常
│   └── ...
├── services/           # 共享基础服务
│   ├── CacheService.php       # Redis 缓存与分布式锁服务
│   ├── HttpService.php        # HTTP CURL 请求工具
│   ├── SystemConfigService.php # 系统配置读取服务
│   ├── UploadService.php      # 文件上传多驱动分发服务
│   ├── wechat/                # 微信公众号与支付基础服务
│   └── ...
├── traits/             # 可复用 Trait
│   ├── QueueTrait.php         # 队列快捷派发特性
│   ├── ServicesTrait.php      # 服务层事务特性
│   └── ...
└── utils/              # 核心工具类
    ├── ApiErrorCode.php       # 全局错误码定义
    ├── Arr.php                # 数组处理工具
    ├── Json.php               # JSON 响应封装
    ├── JwtAuth.php            # JWT 认证生成与解析
    └── Queue.php              # 队列任务构造工具

核心基类与工具说明

控制器基类 (app\basic\OpenBaseController)

所有业务 Controller 的明文基类,负责请求注入与统一初始化:

php
namespace app\basic;

use app\Request;
use think\App;

abstract class OpenBaseController
{
    protected App $app;
    protected Request $request;

    public function __construct(App $app)
    {
        $this->app = $app;
        $this->request = $this->app->request;
        $this->initialize();
    }

    protected function initialize() {}
}

队列任务基类 (crmeb\basic\BaseJobs)

所有异步任务类的统一基类,实现重试计数与异常捕获:

php
namespace crmeb\basic;

use crmeb\interfaces\JobInterface;
use think\queue\Job;

class BaseJobs implements JobInterface
{
    public function fire(Job $job, $data): void
    {
        // 自动分发任务方法与重试次数管理
    }
}

缓存与分布式锁 (crmeb\services\CacheService)

基于 Redis 的高性能缓存与并发互斥锁支持:

php
use crmeb\services\CacheService;

// 1. 设置与获取缓存
CacheService::set('cache_key', $data, 3600);
$val = CacheService::get('cache_key');

// 2. 分布式互斥锁
if (CacheService::setMutex('order_lock_' . $orderId, 10)) {
    try {
        // 执行并发安全操作
    } finally {
        CacheService::delMutex('order_lock_' . $orderId);
    }
}

JWT 认证工具 (crmeb\utils\JwtAuth)

负责平台 6 端 JWT Token 的生成、解析与验签:

php
use crmeb\utils\JwtAuth;

/** @var JwtAuth $jwtAuth */
$jwtAuth = app()->make(JwtAuth::class);

// 生成 Token
$tokenInfo = $jwtAuth->createToken($uid, 'user');

// 解析 Token
[$uid, $type, $auth] = $jwtAuth->parseToken($token);

二开规范

  1. 统一继承明文基类:新建控制器继承 app\basic\OpenBaseController;新建模型继承 crmeb\basic\BaseModel;新建服务继承 app\services\BaseServices
  2. 严禁依赖加密类:禁止在新代码中引用已废弃的加密基类与授权门。
  3. 错误处理:业务错误统一抛出 crmeb\exceptions\AuthException\think\exception\ValidateException,由全局异常处理器转为标准响应。

承信租多门店租赁商城系统官方文档