wangsisi 发表于 2011-7-4 09:28:58

mediawiki中的重要开发模式

作为全球最大维基百科(wikipedia)的为项目实践基础的开源程序mediawiki,历经多年开发,其中的一些模式值得学习。

一、全局对象
   mediawiki定义了几个得要的全局对象,可以全局调用。

    * $wgOut - OutputPage object for HTTP response.
    * $wgUser - User object for the user associated with the current request.
    * $wgTitle - Title object created from the request URL.
    * $wgLang - Language object selected by user preferences
    * $wgContLang - Language object associated with the wiki being viewed.
    * $wgArticle - Article object corresponding to $wgTitle.
    * $wgMessageCache - Message cache to manage interface messages
    * $wgRequest - WebRequest object, to get request data
    * $wgParser - Parser object. Parser extensions register their hooks here.
    * $wgLoadBalancer - LoadBalancer object, manages database connections.
    * $mediaWiki - MediaWiki object, the main base class for the MediaWiki software. Initializes the $wgTitle and $wgArticle objects, and executes the URL actions.

二、多语言与本地化
    程序完全实现了多语言本地化,从而实现了全球化,任何用户只要选择自已的语言选项,就可以自由使用,这其中,多语言机制功不可末。


三、扩展开发----TAG
   这其本上是一种解析标签,你可以自定义解析标签,它将在显示时被解析-parser.
   可以理解为这是一种解析函数,可以放在编辑中的任何地方。文章显示时,它被解析,保存时同样会被钗子进行处理。



四、扩展开发------钩子。

    钩子阿以理解为一事件机制,相当于是事件,用户可以为这个事件添加函数。至于如何具体事实,以后再论述。



五、扩展开发-------special page(插件开发)

   这个相当于插件开发了。使用全局对象,进行插件开发。

六、扩展开发------Skin customer
   
    用户可以扩展skin类,从面完全实现自定义的 skin,从而实现完全的custom Layout。

当然,meiawiki也有不好的地方,就是类太复了。作为轻量,高效的开发理念,复杂的类定义,对于架构理解和二次开发来说,有一定的难度。
页: [1]
查看完整版本: mediawiki中的重要开发模式

美国主机评测网站