5ucms论坛
标题:
微擎系统安装程序知识总结
[打印本页]
作者:
admin
时间:
2017-5-30 08:02
标题:
微擎系统安装程序知识总结
微擎微信公众号管理系统的安装程序与其它的cms等系统不同,其它系统一般使用htm网页模板和程序以及xml格式的数据形式制作安装包,但是,微擎系统跟这些系统安装程序完全不一样,微擎系统把所有的html代码都做成一个字符串以函数的形式保存调用。
要插入的数据库表也是以json格式保存在data/db.php文件里面,而其它系统则是直接以保存创建数据库表的sql语句,并没有作什么json格式数据保存,这是因为其它的系统一般都是离线安装,也就是直接下载安装包进行安装,而微擎微信公众号管理系统则是除了本地安装外还有在线安装,保存成json格式便于安全稳定的传输。
ob缓冲区知识的使用也非常灵活,以前学习ob知识的时候,只是学习的纸上的东西没有真正的实践过只是听老师讲了些实例,当研究微擎时才真正体会到ob缓冲区知识的重要性,而且,灵活使用可以减少不少麻烦。
微擎让我感觉最有特点的就是logo的处理,直接加密成一堆代码,刚开始看时感觉为什么不直接使用logo图片不是更好,为什么加密码成那么长长的一大堆看上去像乱码似的,后来越来越感觉这种方法虽然感觉多了很多字符串,但是,这样可以更容易进行处理。
特别是文件install.php里面if($_GET['res'])的使用非常巧秒,当然,要看明白这个条件里面的代码除了php本身的知识以及insatll.php这个文件里面的一些逻辑弄明白外,还要对http协议有一个深该的理解,否则,这段代码很难看明白,而且,还要结合在安装系统时显示logo。
pdo数据库抽象层的使用,现在还有很多甚至很有名的系统都没有使用pdo,而微擎微信公众号管理系统则使用了这个来连接数据库,查询处理数据库表中的数据,研究这个文件install.php需要您有一定的pdo基础知识。
curl库的使用:因为,只要进行像远程下载等类似的都要用到curl(当然,不用这个函数库一样可以下载内容),但是,使用这个curl函数库会非常方便。
安装条件的处理:文件install.php里面对安装条件,即类似if($action = 'evn')这样的条件的处理非常巧秒,通过上一步提交过来的表单是否是post的值,通过下面这一行代码进行判断:
$ispost = strtolower($_SERVER['REQUEST_METHOD']) == 'post';
当点击“继续”时,从上一步提交一个表单,表单的方法是post,这时$ispost值为真,则设置$action的值为下一步的值例如:
if($ispost) {
setcookie('action', $_POST['do'] == 'continue' ? 'db' : 'license');
header('location: ?refresh');
exit;
}
复制代码
这是再一次重新定位到当前url,然后,给当前url增加一个get参数refresh,这时又一次重新刷新url,此时,提交过来用到的方法是get,所以,$ispost的值为假,但是,此时$action='db',所以,再次进入到install.php文件里面,就执行条件if($action = 'db')里面的代码进行数据库安装,而此时,并不执行这个条件里面的if($ispost)条件。
以此类推,直接安装完程序,这是一种非常巧的方法,值得我们好好研究这种通过表单里面的form来控制安装程序内容。
还有很多知识点,上面只是总结了我认为比较重要的知识点,在这个安装文件install.php里面还使用了大最函数甚至类。
所以,这个文件虽然只有几十K但是,包含的知识非常丰富,能把这个文件全部知识弄懂,特别是对于初学php的人来说会更上一层楼。
内容来源:
http://www.phpos.net
欢迎光临 5ucms论坛 (http://bbs.5ucms.com/)
Powered by Discuz! X3.2