您的位置:软件测试 > 开源软件测试 > 开源Bug管理工具 > Mantis
Mantis解析
作者:网络转载 发布时间:[ 2014/2/7 16:38:00 ] 推荐标签:Mantis 缺陷管理

(三)Mantis的结构分析

其实这个应该放到后的,因为修改后,才发现很多的东西,Mantis都已经想到了,东西都在代码中,而不是在页面配置里面,所以很多时候,想要的功能,直接修改源码参数即可。等到(四)的时候,大家可以具体的了解其中的内容了,此节仅仅对Mantis的结构进行说明。

我本人不是开发出身,原先也不了解php,都是此次因为需要使用,才现看的php内容,好在不是需要开发一个没有的系统,而是在一个现有的体系下找到其中的节点和关键,这个方便多了,所以下面的内容,仅仅代表本人的一些看法,可能有不对的地方,大家可以随时指出,谢谢。

Mantis的目录很多,但是关键的目录目录只有一个,是core目录,当然了,因为汉化的缘故,lang目录的strings_chinese_simplified.txt,也是我们关心的内容。还有是根目录下面的各个php文件。

其实感觉Mantis的结构安排不尽合理,php目录下面的大部分内容,都应该放置到一个专门的目录,因为都是一些功能页面文件。而用户定义的内容,比如config_inc.php,应该放置在根目录或者专门的配置目录中,现在的安排显得很混乱,主次不清。

如果看过Mantis的源码,会发现很多php中都首先引入require_once( 'core.php' );core.php是我们第一个需要分析的文件,把此文件分析完,Mantis什么样子,我们也知道了。

(四)core.php到底做了什么

下面的分析,我没有解释全部代码,只是挑选主要的说明Mantis都在后面做了哪些魔法,感兴趣的可以直接去看完整的代码。

 

1.     constant_inc.php

45行:require_once( dirname( __FILE__ ).DIRECTORY_SEPARATOR.'core'.DIRECTORY_SEPARATOR.'constant_inc.php' );

这个是Mantis中定义的常量,在各种函数中,调用的很多不是硬编码,而是对应的常量数值。

在50,51行的

if ( file_exists( dirname( __FILE__ ).DIRECTORY_SEPARATOR.'custom_constants_inc.php' ) ) {

      require_once( dirname( __FILE__ ).DIRECTORY_SEPARATOR.'custom_constants_inc.php' );}

这个是如果你需要定义自己的常量,请在根目录下面新建custom_constants_inc.php文件,把自己定义的常量定义到此文件中。按照基本的原则,没有必要,不要修改Mantis中原有的文件,Mantis本身已经给你留下了自定义的接口文件,此custom_constants_inc.php文件是。

下面还有很多类似的情况,有一个缺省的Mantis配置文件,有一个对应的用户自定义文件。

2. config_defaults_inc.php

62行:require_once( dirname( __FILE__ ).DIRECTORY_SEPARATOR.'config_defaults_inc.php' );

config_defaults_inc.php是Mantis系统默认的各种参数。此文件和下面config_inc.php是同样作用的文件,但是config_defaults_inc.php是系统预设的,config_inc.php是用户自己定义的。

3. config_inc.php

64-67行

# config_inc may not be present if this is a new install

if ( file_exists( dirname( __FILE__ ).DIRECTORY_SEPARATOR.'config_inc.php' ) ) {

      require_once( dirname( __FILE__ ).DIRECTORY_SEPARATOR.'config_inc.php' );

      $t_config_inc_found = true;}

安装或升级Mantis的时候,自动把数据库等信息写到此constant_inc.php文件中。如果需要自己定义一些参数,也都是在此文件中写入,可以写入的参数参考doc目录内administration_guide.pdf的Chapter 5. Configuration章节。在根目录的config_inc.php.sample文件内也有一些相关的示例。总之,自己需要定义的参数,在config_inc.php中实现。

如果config_inc.php和config_defaults_inc.php参数有重复的情况,以config_inc.php中定义的为准。

4. custom_function_api.php

244行:

require_once( 'custom_function_api.php' );

用户自定义的函数,请加入到此文件中,缺省没有此文件,需要的时候自己建立。

5.其他

Core.php里面还定义了很多内容,比如载入core目录下面的各种api文件,定义时区,出否加载wiki等,但是主要的,还是上面的几个文件。

总结,core.php主要加载Mantis使用的资源和库文件,不妨当成缺省的命名空间,而且预留了用户的接口,主要是变量config_inc.php、常量custom_constants_inc.php、函数custom_function_api.php,后两个文件缺省没有,需要的时候由用户手工建立。在自己定义或开发的过程中,不要修改Mantis的原文件,都使用此三个文件即可。

具体的示例,参考doc目录内administration_guide.pdf的Chapter 7. Customizing MantisBT。

上一页12下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd