php 面向接口,php开发app接口

一、app接口简介:与PHP面向对象的接口不同,是通信接口地址

1.条件:

1)接口地址

2)接口文件

3)接口数据

2.如何通信

1)类似BS模式

3.客户端app通信格式区别:xml和json

1)可读性方面:xml

2)生成数据方面:json

a)xml:

i.拼接

ii.DomDocument类

iii.XMLWriter类

iv.SimpleXML类

b)json:json_encode

3)传输速度:json

4.app接口能做哪些事

1)获取数据:从数据库|缓存中获取数据,通过接口数据返回给客户端

2)提交数据:通过接口提交数据给服务器,服务器入库处理,或者其他处理

二、封装通信接口方法

1.服务器端->数据库|缓存->调用接口->客户端

2.通信数据标准格式

1)code

2)message

3)data

3.json方式封装接口数据:

1)jeson_encode($data);$data为utf-8编码的

2)示例

//json生成数据封装

public static function

json($code,$message='',$data=array()){

if(!is_numeric($code)){

return '';

}

$result=array(

'code'=>$code,

'message'=>$message,

'data'=>$data,

)

return json_encode($result);

}

4.xml方式封装接口数据:

1)示例

// xml

public static function

xmlEncode($code,$message='',$data=array()){

if(!is_numeric($code)){

return

'';

}

$result=array(

'code'=>$code,

'message'=>$message,

'data'=>$data,

)

header('Content_Type:text/xml')

$xml="<?xml

version='1.0' encoding='UTF-8'>\n";

$xml.="\n";

$xml.=self::xmlToEncode($result);

$xml.="";

}

public static function xmlToEncode($data){

$xml=''

foreach

($data as $k => $v) {

if(is_numeric($k)){

$attr='id="'.$k.'"';

$k='item';

}

$xml.=is_array($v)?self::xmlToEncode($v):"".$v."".$k.">"

}

/*<0>0>*/

return

$xml;

}

5.综合方式封装通信数据方法:

1)示例

//综合

public static public function

show($code,$message='',$data=array())

{

$type=$_GET['format']?$_GET['format']:'json'

if(!is_numeric($code)){

return

'';

}

$result=array(

'code'=>$code,

'message'=>$message,

'data'=>$data,

)

if($type=='json'){

self::json($code,$message,$data)

exit;

}elseif($type=='xml'){

self::xmlToEncode($code,$message,$data);

exit;

}elseif($type=='array'){

//用来调试

var_dump($result);

}else{

//后续补充

}

}

三、核心技术

1.缓存技术

1)静态缓存:PHP写入文件

a)生成缓存

b)获取缓存

c)删除缓存

2)memcache缓存

a)php操作memcache

i.connect(),set(),get(),del(),

3)redis缓存

a)set,get,setex(带过期时间),del

b)php操作redis:phpredis

i.connect(),set(),get(),del()

2.定时任务

1)定时任务命令

a)crontab

i.内容说明:

1.分

小时 日 月 星期 命令(执行文件)

2.*代表取值范围内的数字,/代表每分钟|小时....

ii.crontab -e

1.编辑某用户cron服务

iii.crontab -l

1.列出某用户cron服务

iv.crontab -r

1.删除某用户cron服务

四、app接口实例

1.单例模式链接数据库

1)单例:一个类只有一个实例

a)三大规则

i.构造函数需要标记为非public.单例类不能再其他类中实例化,只能被自身实例化

ii.拥有一个保存类的实例的静态变量成员$_instance

iii.拥有一个访问这个实例的公共的静态方法

2.首页接口开发及客户端app演示

1)方案:

a)读取数据库方式:时效性比较高

b)读取缓存方式:减少数据库压力

c)定时读取缓存方式:

3.app版本升级以及app演示

1)check

4.app错误日志接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值