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实践指南》 陈小龙著

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

php和app关系,php在app开发中的应用相关推荐

  1. visual studio可以开发app吗_做好APP定制开发的计划,可以让你的应用开发事半功倍...

    点击蓝字 关注我们 站在专业开发的角度来说,做好APP定制开发的计划是成功研发一款APP应用软件的首要任务.可以说只有计划越详细,APP开发的过程才会越顺利.而做好APP定制开发的计划,则需要从以下几 ...

  2. APP开发中这十个细节能直接影响到用户体验,那么如何提升用户体验?

    随着软件开发技术的不断发展和完善,有众多同类选择的APP用户越来越挑剔,单单拼功能拼硬件已经不足以捕获用户芳心.在APP使用过程中,大部分用户无意识地培养出了对使用体验的重视感.这警醒企业,只盯着为用 ...

  3. 游戏陪玩app源码开发中,摄像头的调用及视频处理

    摄像头是游戏陪玩app源码进行视频连麦时的重要移动设备之一,在开发时,我们需要实现游戏陪玩app源码对摄像头的调用权限,这就涉及到相关接口的开发了,不过今天我们主要来了解一下在游戏陪玩app源码开发中 ...

  4. 婚恋交友app开发中需要注意的安全问题

    前言 随着移动设备的普及,婚恋交友app已经成为了人们生活中重要的一部分.但是,这些应用的开发者需要确保应用的安全性,以保护用户的隐私和数据免受攻击.本文将介绍在婚恋交友app开发中需要注意的安全问题 ...

  5. app前端html,HTML前端开发App汇总

    1.web App (1)what Web App就是运行于网络和标准浏览器上,基于网页技术开发实现特定功能的应用. (2)why 第一.使用W3C标准的HTML(标准通用标记语言下的一个应用)语言开 ...

  6. APP开发中的UI设计

           UI设计是 APP开发中一个必不可少的部分,用户体验也是影响 APP产品成功与否的重要因素,用户体验包括用户的使用感受和操作感受.就 UI设计来说,它的主要内容有:界面.图标.颜色.字体 ...

  7. 低代码可视化开发理念在物联网APP开发中的应用

    目录 引言 1 相关背景技术 1.1 低代码开发平台发展趋势 1.2 低代码开发平台的研究 2 云编排式APP开发平台 2.1 传统Native Code物联APP开发方式面临的问题 2.2 云编排式 ...

  8. app开发中的异步处理(一)

    本文是我打算完成的一个系列<Android和iOS开发中的异步处理>的开篇. 从2012年开始开发微爱App的第一个iOS版本计算,我和整个团队接触iOS和Android开发已经有4年时间 ...

  9. python开发app需要多久_python数据库开发app

    数据库迁移 开发过程往往伴随着数据库的升级,有时候需要修改数据库模型,修改之后可能还要更新数据库. Flask-SQLAlchemy 只在数据库表不存在时才会根据模型创建表.因此只能先删除再更新.你是 ...

  10. 简单的安卓app小程序代码_开发一款APP大概需要多少钱?

    伴随着近几年移动互联网的飞速发展和智能手机的普及,为了更好地进行品牌营销和线上交易,越来越多的企业想要开发属于本身的手机app,所有企业在开发APP之前最关心的题目就是"开发一款手机APP到 ...

最新文章

  1. 深度学习 免费课程_深入学习深度学习,提供15项免费在线课程
  2. 看漫画还是学数学?小孩子才做选择,大人全都要!
  3. iOS之UIview动画
  4. PYTHON 函数的返回值
  5. 栈和队列之用java实现栈
  6. php mysql管理_MySQL 连接与管理
  7. 3.深度学习练习:Planar data classification with one hidden layer
  8. 深入理解L1、L2正则化
  9. IaaS,PaaS,Saas 云服务的介绍
  10. HDU 5045 状压DP 上海网赛
  11. windows和linux 修改 hosts的路径
  12. 期货结算 期货算法公式
  13. switch芯片上的QoS,VLAN介绍
  14. 刘宇凡:苍井空卖内衣 典型的情怀产品
  15. HPE server 如何利用SPP包升级BIOS
  16. DDD不够好用,你需要学习如何进行弹性软件系统设计
  17. [译]百里挑一:21个优质Swift开源App
  18. 北大4位数学天才,如今齐聚美国搞科研,令人叹息
  19. 喊英语是一件非常快乐的事!
  20. 论文总结(Reinforcement Learning; Merging; Multi-agent)

热门文章

  1. 20172303 2017-2018-2《程序设计与数据结构》课程总结
  2. Exchange 2013CU17和office 365混合部署-配置SSO(七)
  3. python 序列化之JSON和pickle详解
  4. PHP项目性能优化-总览
  5. Codeforces Round #232 (Div. 1) 解题报告
  6. 用正则表达式去除标点符号
  7. 自娱自乐的小题目(6)
  8. 第一章 虚拟化技术概述
  9. 消息分流器-HANDLE_MSG
  10. python高级编程教程_python高级编程——入门语法(一)