Java的类中成员的Access Levels(访问级别)
Modifier | Class | Package | Subclass | World |
---|---|---|---|---|
public |
Y | Y | Y | Y |
protected |
Y | Y | Y | N |
no modifier | Y | Y | N | N |
private |
Y | N | N | N |
phpbb3源码分析-/includes/functions_module.php(v0.01)
模板机制的核心文件就在这里啦。
phpbb3源码分析-基本概念和总体架构(强烈建议先读这篇)(v0.16)
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比较简单,没必要另外开个文件。
phpbb3源码分析-/ucp.php(v0.06)
ucp包的一级文件。
phpbb3源码分析-/includes/ucp/ucp_register.php(v0.5)
jsp是如何处理它的元素的.
During the translation phase each type of data in a JSP page is treated differently. Static data is
transformed into code that will emit the data into the response stream. JSP elements are treated
as follows:
■ Directives are used to control how the web container translates and executes the JSP page.
■ Scripting elements are inserted into the JSP page’s servlet class. See Chapter 9, “Scripting in
JSP Pages,” for details.
■ Expression language expressions are passed as parameters to calls to the JSP expression
evaluator.
■ jsp:[set|get]Property elements are converted into method calls to JavaBeans
components.
■ jsp:[include|forward]elements are converted into invocations of the Java Servlet API.
■ The jsp:plugin element is converted into browser-specific markup for activating an applet.
■ Custom tags are converted into calls to the tag handler that implements the custom tag.