码迷,mamicode.com
首页 > Web开发 > 详细

Ucenter源码解析--frame.php

时间:2015-02-12 19:52:57      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

/control/admin/frame.php的流程结构类似于这样:/control/admin/frame.php -->调用父类adminbase的构造函数,(/model/adminbase的实例)-->adminbase类的构造函数,调用父类base类的构造函数(/model/base.php),真正干活的是base类的构造函数,所以,我们直接看base类的构造函数都实现了什么。

//构造函数
function __construct() {
$this->base();
}
//base函数
function base() {
//调用内部函数,
$this->init_var();
//初始化数据库和连接数据库信息
$this->init_db();
//引入//data/cache下面的文件,并加载全部的应用信息
$this->init_cache();
//初始化所用的应用ID
$this->init_app();
//初始化用户信息
$this->init_user();
$this->init_template();
//发送通知函数
$this->init_note();
$this->init_mail();
//$this->cron();
}

可以看到,base干的话有:

  • 初始化成员变量onlineip,lang
  • 建立数据库连接
  • 将需要的数据表中的信息写到/data/cache对应的文件,可以说,你在/data/cache/目录下面看到的内容都是对应的表格中的数据,这样以来就可以提高代码效率。不需要重复读写数据库
  • 从上一步中的/data/cache/apps.php文件中读取对应的appid内容
  • 读取浏览器的cookie,使用/data/cache/apps.php文件中读取出对应appid的密钥,解密cookie,然后解出userid,username
  • 设置默认主题
  • 使用fsock()向各个应用发生通知
  • 发生email

这个是base的构造函数的功能,adminbase类调用完父类的构造函数,就会执行页面的加载,我们可以看代码:

function adminbase() {

//调用父类的构造函数

parent::__construct();

$this->cookie_status = isset($_COOKIE[‘sid‘]) ? 1 : 0;

$sid = $this->cookie_status ? getgpc(‘sid‘, ‘C‘) : rawurlencode(getgpc(‘sid‘, ‘R‘));

$this->view->sid = $sid;

$this->view->assign(‘sid‘, $this->view->sid);

$this->view->assign(‘iframe‘, getgpc(‘iframe‘));

$a = getgpc(‘a‘);

if(getgpc(‘m‘) !=‘user‘ && $a != ‘login‘ && $a != ‘logout‘) {

$this->check_priv();

}

}

执行了父类的构造函数,就会执行自己的check_priv(),check_prive()的函数代码如下 :

$username = $this->sid_decode($this->view->sid);

if(empty($username)) {

header(‘Location: ‘.UC_API.‘/admin.php?m=user&a=login&iframe=‘.getgpc(‘iframe‘, ‘G‘).($this->cookie_status ? ‘‘ : ‘&sid=‘.$this->view->sid));
exit;

这是部分代码,所以,第一次进ucenter出现 的登陆界面,就是这个函数实现。我们看地址栏的url:http://ucenter.xadieu.com/admin.php?m=user&a=login&iframe=&sid=

是不是一样的。所以,我们看到了登陆界面。下一篇,我们会对base.php的构造函数做一个详细介绍。

 

Ucenter源码解析--frame.php

标签:

原文地址:http://www.cnblogs.com/xiaoyuqin/p/4288720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!