NO.31 禅道项目管理软件model的新扩展机制

禅道的扩展机制在前面的文档已经介绍过了,这篇文档主要介绍model的新扩展机制。当然,以前的扩展机制也是适用的。

更多开源详情:http://www.zentao.net/

一、适应版本

要使用新的扩展机制,必须是禅道3.2以上版本。

二、类扩展

1、扩展文件名

以misc模块的model扩展为例,文件结构如下:

在misc/ext/model/目录下面新建一个class目录,扩展文件就写在class目录下面。

扩展文件名格式:插件名 + class.php, 插件名是小写。例如,如果插件名是testBox,那么扩展文件的名字就是:testbox.class.php。

 

2、扩展文件内容

如图:

 

类名的格式:插件名 + 模块名。 插件名要小写, 模块名的首字母大写。例如,插件名是testBox,对misc模块做扩展,那么类名是testboxMisc。

 

3、扩展的调用

扩展的在任意model中调用,还是以testBox对misc模块扩展为例,可以在misc/ext/model/目录下新建一个textbox.php的文件,此处跟前面扩展一样。

示例如下:

通过$this->loadExtension('插件名')方法来调用扩展。同时,在使用loadExtension方法后,会有$this->类名 的变量,后面可以用这个变量调用扩展。

三、钩子扩展

钩子扩展是新的扩展方式。可以通过钩子对model做扩展,而不用再重新定义。

1、扩展文件名

文件结构如下:


 以misc模块的model扩展为例, 在misc/ext/model/目录下面新建一个hook目录,扩展文件就写在hook目录下面。

扩展文件名格式:方法名 + 字母 + .php, 中间部分主要是防止文件重名,建议用插件名。例如,如果对hello做钩子扩展,那么扩展文件的名字就是:hello.test.php。 

 

2、扩展文件内容

如图:


因为钩子文件是都model做扩展,所以可以调用model和系统的方法,具体可以自己实践一下。

 

3、扩展的调用

如果你是禅道3.2以上版本,则系统会自动加载钩子,只要你的扩展写的没错,那扩展就应该可以实现。

你可能感兴趣的:(NO.31 禅道项目管理软件model的新扩展机制)