Appearance
概述
系统的底层依赖库与服务封装目录(crmeb/ 及 app/basic/)提供了系统运行所需的基础基类、驱动封装、底层工具类和通用辅助服务。这些模块与上层业务逻辑解耦,为业务开发提供高复用性的基础设施支撑。
IMPORTANT
运行时独立性说明: 系统自 2026-07 起已实现业务运行时独立性,业务调用栈不再依赖任何加密文件:
- 控制器基类全面统一使用明文基类
app\basic\OpenBaseController; - 全局公共辅助函数加载自明文
app/helpers_open.php; - Token 解析统一走明文
crmeb\utils\JwtAuth::parse(); - 新增业务代码禁止引入过时的加密类库。
核心目录架构
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);二开规范
- 统一继承明文基类:新建控制器继承
app\basic\OpenBaseController;新建模型继承crmeb\basic\BaseModel;新建服务继承app\services\BaseServices。 - 严禁依赖加密类:禁止在新代码中引用已废弃的加密基类与授权门。
- 错误处理:业务错误统一抛出
crmeb\exceptions\AuthException或\think\exception\ValidateException,由全局异常处理器转为标准响应。