Files
ulthon_admin/.trae/skills/ulthon-core-extend-pattern/SKILL.md

1.4 KiB

name, description
name description
ulthon-core-extend-pattern 指导如何在不修改 extend/base 的前提下扩展功能。需要新增/改造框架内置能力(权限、菜单、管理员等)时调用。

核心层扩展模式(继承与重写)

何时调用

  • 需要修改或扩展框架内置模块(如管理员、菜单、权限、上传等)行为。
  • 看到代码位于 extend/base/,但业务需要调整其逻辑或返回数据。

必须遵守

  • 不修改 extend/base/ 下任何文件。
  • 业务实现放在 app/ 下,并通过继承覆盖 base 层实现。
  • 所有调用从 app/ 下入口类开始,不直接 new/调用 extend/base/ 类。

推荐做法

  1. extend/base/ 找到对应基础类(通常以 *Base.php 结尾)。
  2. app/ 下找到或创建同职责的业务类(不带 Base 后缀),让其继承基础类。
  3. 在业务类中重写需要变更的方法:
    • 方法签名保持一致
    • 能复用就 parent::methodName(),必要时复制父类逻辑后改造
  4. 保持对外调用点不变:控制器/服务统一调用 app/ 下的类。

示例定位思路

  • 控制器:extend/base/admin/controller/*/*Base.phpapp/admin/controller/*/*.php
  • 模型:extend/base/admin/model/*Base.phpapp/admin/model/*.php
  • 服务:extend/base/admin/service/*Base.phpapp/admin/service/*.php