mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 15:32:48 +08:00
1.4 KiB
1.4 KiB
name, description
| name | description |
|---|---|
| ulthon-core-extend-pattern | 指导如何在不修改 extend/base 的前提下扩展功能。需要新增/改造框架内置能力(权限、菜单、管理员等)时调用。 |
核心层扩展模式(继承与重写)
何时调用
- 需要修改或扩展框架内置模块(如管理员、菜单、权限、上传等)行为。
- 看到代码位于
extend/base/,但业务需要调整其逻辑或返回数据。
必须遵守
- 不修改
extend/base/下任何文件。 - 业务实现放在
app/下,并通过继承覆盖 base 层实现。 - 所有调用从
app/下入口类开始,不直接 new/调用extend/base/类。
推荐做法
- 在
extend/base/找到对应基础类(通常以*Base.php结尾)。 - 在
app/下找到或创建同职责的业务类(不带 Base 后缀),让其继承基础类。 - 在业务类中重写需要变更的方法:
- 方法签名保持一致
- 能复用就
parent::methodName(),必要时复制父类逻辑后改造
- 保持对外调用点不变:控制器/服务统一调用
app/下的类。
示例定位思路
- 控制器:
extend/base/admin/controller/*/*Base.php↔app/admin/controller/*/*.php - 模型:
extend/base/admin/model/*Base.php↔app/admin/model/*.php - 服务:
extend/base/admin/service/*Base.php↔app/admin/service/*.php