分享

php开发app接口

 井梅 2018-09-25

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

1.         条件:

1)         接口地址

2)         接口文件

3)         接口数据

2.         如何通信

1)         类似BS模式

3.         客户端app通信格式区别:xmljson

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);$datautf-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错误日志接口

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多