phpbb3源码分析-基本概念和总体架构(强烈建议先读这篇)(v0.16) - 拳不离手、曲不离口 - Speak with your code, my friend, not your word.
phpbb3源码分析-/ucp.php(v0.06)
phpbb3源码分析-/includes/functions_module.php(v0.01)

phpbb3源码分析-基本概念和总体架构(强烈建议先读这篇)(v0.16)

clem posted @ 2010年4月25日 14:46 in Language with tags php , 4854 阅读

BB

对phpbb3的简称。


Package

phpbb3共有16个package组成,这个不是java里那个package,并不是和文件系统中文件夹一一对应的。可以说bb3所有的文件都会放在这16个包中,更不用说是源码了。而这个分析专题是以源码文件为单位的,因此看的时候一定要注意这个文件是属于哪一个package,每个文件的开头都会标明这个文件是属于哪个package。

* phpBB3 - Core files and all files not assigned to a seperate package

说明:核心文件,理论上不属于任何一个package,不过你可以把它们看成是phpBB3 package里的。

 

* acm - Cache system (/includes/acm)

说明:Cache系统。

 

* acp - Administration Control Panel (/adm, /includes/acp)

* dbal - Database Abstraction Layer (/includes/db)

* diff - Diff Engine (/includes/diff)

* docs - phpBB documentation (/docs)

* images - All global images not connected to styles (/images)

* install - Installation system (/install)

* language - All language files (/language)

* login - Login authentication plugins (/includes/auth)

* visual confirmation - CAPTCHA (/includes/captcha)

* mcp - Moderator Control Panel (/mcp.php, /includes/mcp)

* ucp - User Control Panel (/includes/ucp)

说明:用户控制面板,用来处理用户的操作,注意这里的面板只是抽象的面板,一张面板,上面有几个按钮,比如注册,登录等。

* utf - UTF8-related functions/classes (/includes/utf)

* search - Search system (/includes/search)

* styles - phpBB styles (/styles)

 

论坛使用者的角色

三大角色:用户、版主、管理员

 

模块和插件

我们如何使用论坛?通过操作是不是,而单个操作比如你点击一个“注册”链接对我们来说是没有意义的,因为我们的目的是注册,而注册是由很多单个操作组成的,也就是“注册”操作集,所以代码里很多工作是用来应付我们一个又一个的操作集。BB里把这些处理论坛使用者操作集的代码做成模块,一个模块应付一个操作集。

有了模块之后,插件就很好理解了,如果使用者想让BB更强大,加入了一个可以处理额外操作集的模块,这个模块就是一个插件啦。

那么拿到一个模块之后怎么使用它呢?BB认为只要两步就够啦。载入和显示。

 

MVC

不要忘了这个程序由16个包组成, 不要忘了这个程序拥有MVC架构。先来讲controller,controller可以分为front controller部分和action controller部分,前者负责分发,后者负责处理。ucp包就是一个controller,它的front部分就是/ucp.php,它的action部分就是/includes/ucp/。ucp包就这两块地方,不信你搜索一下。当然ucp.php也包含了一部分的action,那是因为某些action比较简单,没必要另外开个文件。

Avatar_small
ttl_web 说:
2011年11月08日 00:59

感谢版主这么好的分析。
期待继续。
目前,我也在看代码,感觉非常好。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter