前兩天有個(gè)朋友寫信給我問一個(gè)testlink和bugzilla集成的問題,從他信里面的描述得出,他已經(jīng)成功把這兩個(gè)系統(tǒng)集成好了,但是有一些功能用不了,例如不能顯示bugzilla里面的id、狀態(tài)、標(biāo)題信息等。其實(shí)原因是testlink的作者只實(shí)現(xiàn)了bugzilla集成的部分接口,其他的接口是要我們自己來寫的。大家可以瀏覽一下testlink安裝目錄下的/lib/bugtracking,里面有好些文件,其中文件int_bugtracking.php是testlink和其他所有bug tracking系統(tǒng)(bugzilla, jira, mantis等)做集成的基類。還有一個(gè)文件叫int_bugzilla.php,這個(gè)文件是testlink和bugzilla集成的代碼,里面定義了一個(gè)類:bugzillaInterface,它是bugtrackingInterface的子類,并且在類bugzillaInterface里面重寫了一部分方法,這也是為什么如果我們自己不修改代碼的話,只能用到部分功能(例如只能連接,但卻不能顯示相關(guān)的信息)。
假如說,現(xiàn)在想在testlink關(guān)聯(lián)bugzilla的一個(gè)bug之前,驗(yàn)證一下bug id是否存在,要在int_bugzilla.php里面重寫checkBugID_existence方法。
$query = "SELECT bug_id FROM {$this->dbSchema}.bugs WHERE bug_id='" . $id."'";
$query_results = $this->dbConnection->exec_query($query);
if ($query_results && ($this->dbConnection->num_rows($query_results) == 1))
{
return true;
}
return false;
如果要自己補(bǔ)充這個(gè)int_bugzilla.php的時(shí)候,需要一點(diǎn)php的知識,并且對bugzilla數(shù)據(jù)庫有所了解,以前公司的同事告訴我用php的一個(gè)神器,vardump。你懂的。