解读UCenter源码(二):服务端接口函数库接口文件

[ad#content]看完我上一篇《解读UCenter源码(一):目录结构》,应该知道服务端接口的函数库接口文件是Ucenter根目录下的index.php,打开这个文件,咋一看是比较简单的,一共一百多行的代码,却要处理所有来自于客户端的请求,包括客户端的登录注册,好友,短消息等等。下面我们来看一下这个文件究竟都做了些什么工作。

具体的代码就不拷贝到这里了,相信对PHP有些基础的人都能看懂,简单的我就大体做个总结,如果有一些重要的难懂的代码我会摘出来一些,具体讲解。

这个文件刚开始是定义了一些常量:比如说Ucenter的版本,还有根目录接口地址等,下面把这些常量的名字列出,大家可以统一的查看一下:UC_SERVER_VERSION,UC_SERVER_RELEASE, IN_UC, UC_ROOT, UC_API, UC_DATADIR, UC_DATAURL, MAGIC_QUOTES_GPC

还设置了一些运行的环境 ,像错误的显示和魔术引号的设置:
error_reporting(0); set_magic_quotes_runtime(0);

然后给所有的环境变量做转义,就是在获取变量的时候加反斜杠,函数名为daddslashes(),这个函数是在此文件最下面定义的,接下来就是包含Ucenter服务器端的配置文件 config.inc.php,到此准备工作已经准备好了,开始获取接口文件的参数了。

从接口文件获取参数一共是三个:m,a,release。其中m表示的是模型(Module),a表示的是动作(Action)。获取参数的函数是getgpc(),这个函数也是在此文件最下面定义的,默认是根据$_REQUEST来获取。可能有些朋友还不清楚接口文件的参数是如何发起,参数都会传递什么内容,这里也给大家一个例子:请求是客户端在执行任何一个操作都会发起的,调用接口文件时传递的参数可以参考这种形式:

m=user&a=synlogin&inajax=2&release=20090121&input=623dF06edspDaA18gn9ktFaXFN7nx9WTmWJUOBd%2Fm25BKuz9tqbOEtTTywsgKP2JgLFEni%2BP0Gjx60S8AQL6nwzBV1jyoU09iVlikFgR9RAwDfUHTTxPlso&appid=3

这样大家对请求就会有一个感官上的认识了,具体这些参数都有什么作用,我会在后面详细介绍。继续回到index文件,获取这三个参数以后会做一个判断,如果m和a这两个参数同时没有的话,就会跳转到用户管理中心主文件(admin页面)。如果有这两个参数的话,会继续设置RELEASE_ROOT路径,然后包含UC的基础类base.php。再下面会判断参数m的值是否在允许的模型(model)范围之内,如果在的话就包含 control目录下的此模型文件,也就是m的值是control目录下文件的名字,参数a的值是此文件里的一个方法,如果同时存在的话,就调用此函数,如果不是就给一些错误的提示。上面的这个接口地址的意思就是:包含 control/user.php,然后调用其中的 onsynlogin() 方法。

这个文件的主要工作就是这么多了,在文件的最下面有两个函数:daddslashes() 和getgpc(),这两个函数的作用前面已经用到,一个是给环境变量的值加反斜杠的,一个是从环境变量中获取值的。

解读UCenter源码(二):服务端接口函数库接口文件》上有 2 条评论

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>