禅道扩展机制
原创- 2023-12-21 14:56:27
- 1275
本篇目录
老版
适用开源版16.5、企业版6.5、旗舰版3.0以下
对应模块ext文件夹下 module/task/ext/。扩展config.php:在ext下建config文件夹,在congfig下建文件比如test.php。
扩展控制器方法create():在ext下建control文件夹,在control下建文件create.php,自己写一个create方法。
继承原来的方法
- 扩展css,建一个css目录,扩展创建页面的css文件,在css目录下再建一个create目录,建文件test.css;
- 扩展js,类似css;
- 扩展语言项目录,类似建lang/zh-cn/test.php,新的会覆盖老的;
- 扩展model,类似control,但是不需要引入文件。
- 加载模块control文件时,先判断有没有被扩展过,如果扩展过,则引入扩展下的文件;
- 实现代码在setActionExtFile()方法中。
扩展view下的文件,ext下新建view文件夹,直接复制原文件,比如create.html.php文件,注意修改引入路径(要多一层)。
也可以这样写,会获取到module前的路径
整个ext扩展目录结构是这样式的
新的:
扩展机制实现原理:control扩展机制。
model扩展机制
同一个模块下的所有model扩展文件会被加载到tmp/model下运行。类名叫ext模块名Model,如extadminModel,有直接扩展和通过钩子扩展两种。
直接扩展,进入tmp下查看:
钩子扩展:
ext/model/hook下建文件将钩子文件下写的追加到tmp/model下文件相应方法的头部
view扩展机制 (完全覆盖+钩子文件扩展,有扩展文件就引入扩展文件)在这个文件下:
这个方法实现的。
注意:文件名和目录名要小写,control方法文件名与方法名要一致,扩展view文件时要注意include路径要变化