php在app开发中的应用

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

在php为app开发接口中须要注意如下几点:mysql

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

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

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

四、开发 API 和 WEB 有必定的区别,若是接口返回的格式不规范,被客户端拿到解析,可能会致使客户端闪退崩溃等状况的出现,因此在接口上线以前必定要充分的测试。编程

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

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

{“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

相关文章
相关标签/搜索