您的位置:軟件測試 > 開源軟件測試 > 開源Bug管理工具 > Mantis
Mantis解析
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2014/2/7 16:38:00 ] 推薦標(biāo)簽:Mantis 缺陷管理

(三)Mantis的結(jié)構(gòu)分析

其實(shí)這個應(yīng)該放到后的,因?yàn)樾薷暮,才發(fā)現(xiàn)很多的東西,Mantis都已經(jīng)想到了,東西都在代碼中,而不是在頁面配置里面,所以很多時候,想要的功能,直接修改源碼參數(shù)即可。等到(四)的時候,大家可以具體的了解其中的內(nèi)容了,此節(jié)僅僅對Mantis的結(jié)構(gòu)進(jìn)行說明。

我本人不是開發(fā)出身,原先也不了解php,都是此次因?yàn)樾枰褂,才現(xiàn)看的php內(nèi)容,好在不是需要開發(fā)一個沒有的系統(tǒng),而是在一個現(xiàn)有的體系下找到其中的節(jié)點(diǎn)和關(guān)鍵,這個方便多了,所以下面的內(nèi)容,僅僅代表本人的一些看法,可能有不對的地方,大家可以隨時指出,謝謝。

Mantis的目錄很多,但是關(guān)鍵的目錄目錄只有一個,是core目錄,當(dāng)然了,因?yàn)闈h化的緣故,lang目錄的strings_chinese_simplified.txt,也是我們關(guān)心的內(nèi)容。還有是根目錄下面的各個php文件。

其實(shí)感覺Mantis的結(jié)構(gòu)安排不盡合理,php目錄下面的大部分內(nèi)容,都應(yīng)該放置到一個專門的目錄,因?yàn)槎际且恍┕δ茼撁嫖募。而用戶定義的內(nèi)容,比如config_inc.php,應(yīng)該放置在根目錄或者專門的配置目錄中,現(xiàn)在的安排顯得很混亂,主次不清。

如果看過Mantis的源碼,會發(fā)現(xiàn)很多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中定義的常量,在各種函數(shù)中,調(diào)用的很多不是硬編碼,而是對應(yīng)的常量數(shù)值。

在50,51行的

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

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

這個是如果你需要定義自己的常量,請?jiān)诟夸浵旅嫘陆╟ustom_constants_inc.php文件,把自己定義的常量定義到此文件中。按照基本的原則,沒有必要,不要修改Mantis中原有的文件,Mantis本身已經(jīng)給你留下了自定義的接口文件,此custom_constants_inc.php文件是。

下面還有很多類似的情況,有一個缺省的Mantis配置文件,有一個對應(yīng)的用戶自定義文件。

2. config_defaults_inc.php

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

config_defaults_inc.php是Mantis系統(tǒng)默認(rèn)的各種參數(shù)。此文件和下面config_inc.php是同樣作用的文件,但是config_defaults_inc.php是系統(tǒng)預(yù)設(shè)的,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的時候,自動把數(shù)據(jù)庫等信息寫到此constant_inc.php文件中。如果需要自己定義一些參數(shù),也都是在此文件中寫入,可以寫入的參數(shù)參考doc目錄內(nèi)administration_guide.pdf的Chapter 5. Configuration章節(jié)。在根目錄的config_inc.php.sample文件內(nèi)也有一些相關(guān)的示例。總之,自己需要定義的參數(shù),在config_inc.php中實(shí)現(xiàn)。

如果config_inc.php和config_defaults_inc.php參數(shù)有重復(fù)的情況,以config_inc.php中定義的為準(zhǔn)。

4. custom_function_api.php

244行:

require_once( 'custom_function_api.php' );

用戶自定義的函數(shù),請加入到此文件中,缺省沒有此文件,需要的時候自己建立。

5.其他

Core.php里面還定義了很多內(nèi)容,比如載入core目錄下面的各種api文件,定義時區(qū),出否加載wiki等,但是主要的,還是上面的幾個文件。

總結(jié),core.php主要加載Mantis使用的資源和庫文件,不妨當(dāng)成缺省的命名空間,而且預(yù)留了用戶的接口,主要是變量config_inc.php、常量custom_constants_inc.php、函數(shù)custom_function_api.php,后兩個文件缺省沒有,需要的時候由用戶手工建立。在自己定義或開發(fā)的過程中,不要修改Mantis的原文件,都使用此三個文件即可。

具體的示例,參考doc目錄內(nèi)administration_guide.pdf的Chapter 7. Customizing MantisBT。

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd