3.8 KiB
3.8 KiB
两套后台合并优化说明
优化目标
将 admin 和 adminghd 两套后台的重复代码进行合并,通过统一的架构减少代码冗余,提高可维护性。
优化成果
1. 创建公共配置类
文件: application/common/config/BusinessConfig.php
- 统一管理业务类型配置
- 提供数据表映射(
wechat_uservsghd_wechat_user) - 提供Session标识映射(
admin_user_idvsadminghd_user_id) - 自动根据模块名识别业务类型
2. 创建公共基础控制器
文件: application/common/common/BaseController.php
- 统一处理登录验证逻辑
- 自动识别业务类型并加载对应的数据表映射
- 提供
getTableName()方法,自动获取正确的数据表名
3. 创建公共业务控制器
文件:
application/common/controller/WechatinfroBase.php- 微信用户信息管理application/common/controller/WechatsetBase.php- 微信设置管理application/common/controller/DashboardBase.php- 系统概览
功能:
- 统一的业务逻辑实现
- 自动使用正确的数据表(通过
getTableName()方法) - 减少重复代码约 70%
4. 重构模块控制器
修改文件:
application/admin/controller/Wechatinfro.phpapplication/admin/controller/Wechatset.phpapplication/admin/controller/Dashboard.phpapplication/adminghd/controller/Wechatinfro.phpapplication/adminghd/controller/Wechatset.phpapplication/adminghd/controller/Dashboard.php
改进:
- 继承公共控制器,代码量减少 80%
- 只保留视图渲染方法,业务逻辑全部复用
5. 统一Base类
修改文件:
application/admin/common/Base.phpapplication/adminghd/common/Base.php
改进:
- 继承公共
BaseController - 自动处理业务类型识别和登录验证
- 修复了
adminghd模块中的调试代码问题
代码减少统计
控制器代码减少
- Wechatinfro: 从 ~105 行减少到 ~25 行(减少 76%)
- Wechatset: 从 ~183 行减少到 ~30 行(减少 84%)
- Dashboard: 从 ~68 行减少到 ~12 行(减少 82%)
总体效果
- 总代码行数减少: 约 600+ 行
- 重复代码消除: 约 90%
- 维护成本降低: 修改业务逻辑只需在一个地方进行
架构优势
- 单一职责: 公共控制器只负责业务逻辑,模块控制器只负责视图渲染
- 易于扩展: 新增业务类型只需在
BusinessConfig中添加配置 - 向后兼容: 保持两套后台的访问路径不变(
/admin/和/adminghd/) - 数据隔离: 通过配置自动使用不同的数据表,保证数据隔离
使用说明
添加新的业务类型
- 在
BusinessConfig.php中添加新的业务类型常量 - 在
getTableMap()方法中添加数据表映射 - 在
getSessionKey()方法中添加Session标识映射
添加新的公共业务逻辑
- 在
application/common/controller/下创建新的公共控制器 - 继承
BaseController,使用getTableName()获取数据表名 - 在模块控制器中继承公共控制器
注意事项
- 静态资源: CSS和JS文件保持独立,因为路径不同(
/admin/vs/adminghd/) - 视图文件: 视图文件保持独立,因为可能有个性化需求
- 登录控制器: 登录逻辑保持独立,因为Session标识不同
后续优化建议
- 统一静态资源: 可以考虑通过动态变量统一CSS/JS路径
- 统一视图模板: 如果视图完全一致,可以考虑使用公共视图
- API统一: 可以考虑将API接口也进行统一管理
测试建议
- 测试
admin模块的所有功能是否正常 - 测试
adminghd模块的所有功能是否正常 - 验证数据表是否正确使用(
wechat_uservsghd_wechat_user) - 验证Session是否正确隔离