5ucms论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6370|回复: 0
打印 上一主题 下一主题

[开发教程] 微擎系统安装程序知识总结

[复制链接]

670

主题

785

帖子

8268

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8268
跳转到指定楼层
楼主
发表于 2017-5-30 08:02:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  微擎微信公众号管理系统的安装程序与其它的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的值为下一步的值例如:

  1.     if($ispost) {
  2.         setcookie('action', $_POST['do'] == 'continue' ? 'db' : 'license');
  3.         header('location: ?refresh');
  4.         exit;
  5.     }
复制代码



  这是再一次重新定位到当前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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5ucms.com

GMT+8, 2024-6-1 14:24 , Processed in 0.078125 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表