一、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.="<root>\n"; $xml.=self::xmlToEncode($result); $xml.="</root>"; } 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):"<".$k.">".$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错误日志接口 |
|