| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> PHP微擎数据流 -> 正文阅读 |
|
[PHP知识库]PHP微擎数据流 |
上期分享了lumen框架数据的一个走向,本次解析下微擎的数据走向 首先需要解压到服务器上之后,进行公众号接入,具体的按照教程一步步走就行 本人在接入时也是遇到了点问题,多方调试后发现是域名的问题,所以小伙伴们也要注意下。 话不多说,我们将我们的项目解压到addons目录下 这就是解压后的项目结构与微擎的目录结构 我们从目录结构中不难看出,我们需要去看manifest.xml文件中的入口配置, 这里就着重分析下门店管理(store)模块,他的走向是stores方法,重定向是false 我们去看下site.php文件里面,因为项目不是特别大的话是可以写到一起的,比较大的话可以在 inc目录下区分moble和web进行前后端分离?。 找到该方法,因为都写在一起,所以通过doweb和domobile来区分前后端 ?首先是全局变量,$_W是data目录下config里面的配置参数,里面可以增加参数,是一些数据库或者其他的一些参数,在这里可以直接取到通过名字,$_GPC是微擎里面定义接收参数的,他可以接收post,get传的参数,在这里也是声明为全局标本量,方便下面取值,$code的话可无关紧要。$weid指的是uniqueid,因为一个公众号可添加多个模块,我们要通过这个id来进行数据的区分,所以每个表中都是有这个id的,作为数据的唯一标识。 然后使用$this指向权限检测的方法进行权限检测 往下面接着走我们可以看到是两个定值的字符串,然后进行页面跳转传参,我们去stores页面进行查看下 首先第一行就是common/header公共的头部,那么既然他有头部,那么就有对应的footer底部 因为微擎不需要模板变量赋值,所以可以直接在页面取值,真的是非常方便昂,页面首先就进行权限验证,然后显示相应的代码 我们接着向下看是两条语句,微擎的数据查询语句也是很独特,我们看下他的文档里面是怎么说的 ?可以看出来fetchall是查询所有数据,tablename是指向了之前的一个定值参数 ?后面也是同理跟上where条件,语法稍微有点原生,但也不是特别的原生,毕竟每个框架都是不一样的嘛,需要我们慢慢熟悉,hhhhh。 但是注意下,fetchall查询的为二维数组,特别注意! ?下面是一个三元判断$operation如果为空的话就是display,然后判断该值,如果是setting的话就执行以下代码块,从字面意思可以看到是更新这里可以看出是通过$operation的值来执行那些代码 这是页面上显示的内容,显示op的三个值,分别对应添加管理和配置功能。 ?对相关数据进行处理后进行处理更新。然后message进行提示,这是微擎的提示方式,跳转提示success 微擎也可以使用message($math,'','ajax');相当于tp里面的var_dump;打印数据,这可以用来查看数据进行调试。 如果他的值为display时,为门店管理功能,接收到相应的参数对其进行处理,去空格和转整型,进行循环排序提示操作成功。 然后下面是分页功能和搜索,都是接收相应的参数页码和关键字,在进行判断,进行where条件拼接,向数据库进行查询,然后跳转提示。 接下来是值为post时,为增加门店模块,load()->func('tpl');,如果要在模板中使用表单控件?,必须调用此方法?。然后对门电编号进行转整型,对相应的数据进行查询,如果查询结果为空的话,就更改他的开始和结束时间,然后对他的门店网址进行反序列化,下面就是对许多数据的去空格和转整形,以及对数据字段长度或者不能为空一些验证,向数据表中进行插入。 ?下面是如果开始时间为数组,就是我们上面的一条查询语句中的结果,以此来判断更新 如果里面的begintime是数组的话,循环遍历数据在进行插入。 这个ifelse对应的是上面的if ($operation == 'post'),如果不是post的话,就是删除方法, 首先对该数据进行查询,如果结果为空的话进行提示不存在或者已经删除,不为空的话就进行删除操作。 然后对他的cookie进行解密,并且设置store值为当前时间戳加上一天的时间戳,然后引入stores模板。 到这里就算是结束了,再见。 |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 1:39:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |