博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php在app开发中的应用
阅读量:6083 次
发布时间:2019-06-20

本文共 1684 字,大约阅读时间需要 5 分钟。

php作为服务端的开发语言在app开发中扮演着连接客户端和数据库的角色,客户端通过调用由php开发的接口完成对数据库的操作,php代码中实现用户业务逻辑的部分。客户端需要传递一些参数给服务端php,这些参数的格式由客户端开发人员和服务端开发人员共同协商制定,两者遵循同一套标准,使得双方之间传递的数据能够被正确解析。在实际开发中json格式的数据被广泛用于客户端和服务端数据的交互,几乎每种语言都支持json数据的解析,在php中使用json_encode()和json_decode()便可,非常便捷。

在php为app开发接口中需要注意以下几点:

1、数据传输建议使用json,json具有很强的跨平台性,大多编程语言都支持json解析,json正在逐步取代xml,成为网络数据的通用格式。

2、为了保证接口安全,一定要加入鉴权体系,确保请求php接口的是合法来源。另外对于传输的数据也可以使用加密技术,本书第20章有讲述关于api接口签名和信息加密的内容。

3、对于线上的API,尽量使用error_reporting(0)关闭错误提示,或者把错误提示写入到日志中,方便日后排查。这样做的目的,一方面可以保护接口安全,防止输出不该打印的错误信息,另一方面是保证输出的是正确的数据格式,防止输出错误信息被客户端错误解析而出现的接口调用异常。

4、开发 API 和 WEB 有一定的区别,如果接口返回的格式不规范,被客户端拿到解析,可能会导致客户端闪退崩溃等情况的出现,所以在接口上线之前一定要充分的测试。

5、尽可能保证php写出的代码的性能,手机应用比web应用对响应速度的要求更高,因为用户手机性能的巨大差异,手机应用在从服务端取到数据后要进行数据重组页面渲染等会比web应用消耗更多的时间。

客户端和服务端之间选定json作为数据传输格式,之后便要约定json中各字段的含义,一般在json数据中定义至少三个字段,分别为返回状态码,返回状态描述和数据内容。比如一个定义返回用户信息的的json数据如下:

{“code":0,"msg":"success","data":{"name":"chenxiaolong","age":"22","gender":"male"}}

其中code值为0表示客户端此次请求接口成功,msg字段说明此次请求的状态,与返回状态码code对应,data中是客户端想要取到的具体内容,里面包含服务端返回的用户信息。在data字段开发者可根据不同的接口需要定义不同的字段格式。

此接口的简单代码示例如下:

function getUserInfo() {$uid = $_REQUEST[‘uid'];$user = new User();if($data = $user->findByUid($uid) != false) {$this->output($data);} else {$this->output('',1,'invalid uid');}}

客户端通过调用getUserInfo接口并传入用户的uid参数,php接收该参数到mysql数据库用户表里根据此uid查询用户相关信息,其中User是一个封装的用户表模型,它提供根据用户uid查询用户信息的findByUid方法,如果查询到用户信息就输出用户信息,否则返回错误信息给到客户端,此处返回的错误状态码定义为1,表示不合法的uid,即在用户表里没有查询到该uid对应的数据记录。

接口用到了一个公用output方法,此方法是输出json数据的具体实现,示例代码如下:

function output(,$data='',$code=0,$msg='success') {$out = array('code'=$code,'msg'=>$msg,'data'=>$data);echo json_encode($out);}

注意向客户端返回数据时使用的是echo输出而不是return。

本文节选自 《php7实践指南》 陈小龙著

微信扫一扫,发现更多内容

761c57ad902ff50c.jpg

转载地址:http://ehkwa.baihongyu.com/

你可能感兴趣的文章
harbor的加密机制与后台修改登录密码
查看>>
Android IT资讯网络阅读器应用源码
查看>>
Java基础学习总结(23)——GUI编程
查看>>
Ruby on Rails 环境搭建
查看>>
MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合
查看>>
部署System Center App Controller 2012 Service Pack 1 (5)
查看>>
MySQL:日期函数、时间函数总结
查看>>
工作是什么
查看>>
Linux 中cpu通略
查看>>
服务器端创建账户收件箱规则--将邮件复制到指定文件夹中
查看>>
java中简单集合框架(二)
查看>>
函数返回局部变量的一些问题
查看>>
Solaris11性能监控--处理器
查看>>
内存模型
查看>>
如何快速开发网站?
查看>>
tomcat等服务器返回给页面的数字分别表示的意思!
查看>>
我的友情链接
查看>>
个人博客
查看>>
我的友情链接
查看>>
mysql 参数 innodb_flush_log_at_trx_commit
查看>>