-
老的:适用开源版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,但是不需要引入文件
-
扩展view下的文件,ext下新建view文件夹,直接复制原文件,比如create.html.php文件,注意修改引入路径(要多一层)
也可以这样写,会获取到module前的路径
-
整个ext扩展目录结构是这样式的
-
-
-
新的:
比如扩展bug模块的代码,目录在下面,其他同老版本
-
扩展机制实现原理
-
control扩展机制
-
加载模块control文件时,先判断有没有被扩展过,如果扩展过,则引入扩展下的文件
-
实现代码在setActionExtFile()方法中
-
-
model扩展机制
-
直接扩展
-
进入tmp下查看
-
钩子扩展
-
ext/model/hook下建文件将钩子文件下写的追加到tmp/model下文件相应方法的头部
-
-
view扩展机制 (完全覆盖+钩子文件扩展,有扩展文件就引入扩展文件)
-
在这个文件下
-
这个方法实现的
-
-
注意:文件名和目录名要小写
control方法文件名与方法名要一致
扩展view文件时要注意include路径要变化