资讯专栏INFORMATION COLUMN

php在app开发中的应用

import. / 1321人阅读

摘要:在实际开发中格式的数据被广泛用于客户端和服务端数据的交互,几乎每种语言都支持数据的解析,在中使用和便可,非常便捷。

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22495.html

相关文章

  • 用Docker搭建Laravel和Vue项目的开发环境

    摘要:第二步添加在项目中创建文件。项目是官方的开源项目,负责实现对容器集群的快速编排。在这里我们会用到四个容器分别将放在四个不同的容器中,通过将四个应用容器关联到一起组成项目。服务服务的容器将执行我们项目中的代码。 showImg(https://segmentfault.com/img/bVbpfM5?w=695&h=270);在这篇文章中我们将通过Docker在个人本地电脑上构建一个快速...

    starsfun 评论0 收藏0
  • laravel框架应用和composer扩展包开发

    摘要:官方地址是目前最流行的框架,发展势头迅猛,应用非常广泛,有丰富的扩展包可以应付你能想到的各种应用场景,框架思想前卫,跟随时代潮流,提倡优雅代码,自称为工匠,其中的模板引擎容器以及扩展包为业务的开发提供了极大的便利。 laravel5.5+ laravel官方地址 laravel是目前最流行的php框架,发展势头迅猛,应用非常广泛,有丰富的扩展包可以应付你能想到的各种应用场景,lara...

    shevy 评论0 收藏0
  • Laravel深入学习5 - 应用架构

    摘要:控制只是用来接收请求并请求逻辑处理类。事实上,业务逻辑无需感知网络,网络仅仅接入应用的传输机制,他不应超出应用中的路由和控制器的范畴。职责分离是编写健壮应用的关键。其他通常,类库应该以规范组织在我们的应用中。 声明:本文并非博主原创,而是来自对《Laravel 4 From Apprentice to Artisan》阅读的翻译和理解,当然也不是原汁原味的翻译,能保证90%的原汁性,另...

    lixiang 评论0 收藏0
  • 使用SAE和Gitcafe开发网站应用

    摘要:原文使用和开发网站应用在领域目前看来新浪云走的比较早,也比较成熟。新浪云需要使用新浪微博的帐号才能登录和使用。目前,新浪云需要进行实名认证才能创建个以上的应用,所以推荐进行实名认证。 原文:使用SAE和Gitcafe开发网站应用 在PaaS领域目前看来新浪云走的比较早,也比较成熟。相比IaaS,PaaS更能为企业或个人带来成本上的节约。本文以php为例,记录了如何在新浪云上注册创建自...

    liuhh 评论0 收藏0
  • Lumen 初体验(二)

    摘要:的现状目前是版本,是基于开发。入口文件启动文件和配置文件框架的入口文件是。在路由中指定控制器类必须写全命名空间,不然会提示找不到类。目前支持四种数据库系统以及。使用时发生错误,因为在文件中,的默认驱动是。 最近使用 Lumen 做了 2 个业余项目,特此记录和分享一下。 Lumen 的介绍 在使用一项新的技术时,了解其应用场景是首要的事情。 Lumen 的口号:为速度而生的 La...

    Cheriselalala 评论0 收藏0

发表评论

0条评论

import.

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<