sharetronix代码结构分析

本文详细分析了开源PHP微博系统sharetronix的代码结构,包括其目录布局、核心组件如controllers、models、views的角色,以及URL处理和MVC模式的交互过程。通过一个访问用户页面的例子,阐述了请求从URL解析到业务逻辑处理的流程,帮助开发者更好地理解和进行二次开发。
摘要由CSDN通过智能技术生成

sharetronix是一个开源的php微博系统,其功能之完善令人叫绝,最基本的发微博、转发、评论、好友关注、微博内嵌图片、视频、音乐等自然不在话下,甚至群组、权限管理、多语言,移动设备访问都一应俱全,而且部署安装过程非常简单,即使不做任何修改,安装之后即刻就能上线一个“五脏俱全”的微博平台。

本文主要对于sharetronix的代码结构进行介绍,希望对需要在sharetronix上做二次开发的同学有所帮助。sharetronix的官网上有详细的安装步骤,这里不再赘述。

 

目录结构介绍:


安装好之后进入网站目录,可以看到如下的文件结构:


主目录结构

 

其中,i文件夹用于存放上传的各种图片和文件,比如用户头像就放在i/avatars;system是逻辑代码和数据访问相关代码的存放地;themes用于放置前台展示层的文件;index.php是网站的入口,其中只有一行代码,作用就是执行system/LOADER.php文件。下面我们到system里面去瞧瞧:

 

system目录结构

 

cache是放置缓存文件的地方,sharetronix原生支持多种缓存机制;

classes放置类的实现,这些类会被多个controller用到,功能主要是与数据库打交道,可以理解为是MVC里的model,虽然这里也存放一些实现了公用数据访问功能的类,比如class_network.php;

controllers自然是控制逻辑实现的地方,所有页面处理逻辑、ajax处理函数都放在这里;

helpers放置一些工具函数,比如用于图像处理的func_images.php;

languages是实现i18n的地方,sharetronix原装支持的语言数已经非常多了,如果要修改或者新增一个字符串,就到相应语言文件夹下对应的文件里修改即可;

conf_main.php和conf_system.php是全局变量设置的地方,比如存放图片的文件夹位置,每页显示的评论数量等等信息就在这里设置。

 

再回到上一级,看看themes里面:

 

前台文件目录

 

themes里面按主题分为不同的文件夹,系统默认使用的是default主题。每个主题文件夹内包括html,js,css,images用于存放相应的前台文件,如果要修改展示方面的内容,就在这里下手啦。

 

访问用户页面的请求处理过程:

 

这里以一次访问用户页面的请求处理过程为例,简单介绍一下sharetronix的URL处理和MVC的交互过程。

假设网站有个注册用户叫idealllee,网站根目录的URL为http://localhost/sharetronix,那么如下URL就会访问idealllee的个人页面:http://localhost/sharetronix/idealllee,让我们具体看看这个过程。

 

首先,无论什么请求,都会经过LOADER.php的处理,在这里全局变量$C生效,$C把conf_main.php和conf_system.php中配置的各种全局信息导入,另外两个很关键的对象$db2和$network会被创建,其中$db2被赋予一个新建的数据库实例,通过$db2系统随时可以进行数据库操作,$network是class_network.php的一个实例,它对controller屏蔽了缓存层,controller在读取允许缓存的数据时,均是通过network中定义的函数进行的。接下来LOADER.php创建一个class_page.php实例$page,并把接下来的工作交给它。

 

$page可以理解为是一个具有request作用域的对象,在controller中随处可见的$this对象指的就是这个$page对象。$page对象最主要的功能就是URL解析,这个工作由_parse_input()函数完成。本例中,idealllee会在_parse_input()中被识别为一个用户名,然后这个用户对象会被保存在$this->param-user中,而查询用户对象使用的就是$network中的get_user_by_username()方法。接下来通过_load_controller()方法将请求传递给controllers里的user.php来处理页面逻辑。

 

至此,所以的初始化工作都完成了,接下来就转入了具体的业务逻辑处理了,这个过程是由相应的controller负责的,URL中在第一个子参数(idealllee)之后的所有参数都由接下来的controller负责(例如idealllee/abc/bbc)。

 

user.php中要做的事情就是准备前台需要的数据,把它们保存到$D中,然后调用$this->load_template('user.php')来渲染前台页面。这个过程中有三个user.php文件参与,第一个是controller/user.php,第二个是languages/{语言包}/inside/user.php,这里放了许多字符串,凡是在controller中有$this->lang()调用的都会去第二个user.php中找对应的字符串,第三个就是themes/{主题包}/html/user.php,这个就是展示页面,其中通过$D把controller准备的数据进行渲染,生成最终的html页面返回。

 

总结:

 

sharetronix是个功能强大的开源php微博系统,部署方便。本文通过目录结构的介绍和对一次请求的分析,介绍了sharetronix不同部分代码的作用,目的在与给初次接触sharetronix源码并希望在其上做二次开发的朋友一个全局的概念,便于下手。介于作者水平有限,本文对于sharetronix源码介绍不免有错误和不周到的地方,欢迎高手指正,谢谢!

sharetronix是一款免费开源微博客系统,最新版本为中文版2.0.1(基于官方sharetronix1.4.2) sharetronix最新中文版包括以下功能: 一、方便更新 1、对聊天工具的支持:支持用QQ来更新微博 2、对手机的支持:支持通过手机短信更新微博、有wap界面(分为普通手机的界面和专为iPhone定制的界面) 3、不仅可以发布文字,还可以发布视频(支持优酷、土豆、酷六等国内视频网站)、图片、网址、上传文件 二、完整的微博体系 1、follow、评论、@某人,#话题,私信,收藏、RSS、微博认证用户(即VIP用户组)等微博该有的功能都有 2、完善的注册体系,正常注册、需验证邮箱、仅凭邀请码注册 3、完善邀请及邮件系统,可以导入邮箱通讯录中的好友,用户可以自定义邮件通知方式 4、搜索功能强大:可以搜索微博、用户、群组、评论 5、内置facebook或twitter的接口,可以用facebook及twitter的用户名登陆微博 6、可以自定义模板,系统自带了五套模板可供选择 三、群组功能 1、用户可以创建感兴趣的群组,并有丰富的管理菜单 四、方便与其它系统整合 1、有Ucenter接口,可以通过UC整合到Discuz论坛、UCHOME、Disuz X1 2、可以通过UC,将sharetronix搭建的微博与PHP168、织梦cms等系统整合 五、安装/升级方法 全新安装:上传upload所有文件到网站根目录 升级:支持从官方最新版本或其它低版本升级,上传upload所有文件覆盖原网站,运行网站域名/install 即可完成升级。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值