Bugzilla是著名的开源bug跟踪系统,其开源的特性决定了用户可以根据自身的需要来进行定制,下面我将以版本3.4.4为基础来和大家聊一聊。
本文首先介绍了Bugzilla中的部分类继承结构,随后说明了如何利用Bugzilla中现有的类来对其进行扩展。
Bugzilla中,大部分数据库表都各自对应于一个Perl Module,同时也是一个类,如Bug类处理数据库中的Bugs表,User类处理数据库中的Profiles表等等,而且它们都继承自共同的基类Object。Bugzilla中的常用类层次结构如下:
注意,上图中未包括Flag、Keyword等类。
Object是Bugzilla对象的基类,你不能直接创建一个类型为Object的对象,应该只使用Object的子类。而Object基类的存在使得我们更容易创建新的类。最简单的方法是,你只需要定义DB_TABLE和DB_COLUMNS,有些时候可能还需要定义LIST_ORDER,你就拥有了一个全新的子类。
怎么样,很简单吧!下面我们就结合一个简单的需求来看看要拥有一个功能完备的子类还需要做哪些事情。</