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错误日志接口
php 面向接口,php开发app接口相关推荐
- php redis 接口,PHP 开发 APP 接口 --Redis篇(示例代码)
① 开启 redis 服务: [[email protected] bin]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis ...
- appcontroller.php,php用什么开发app接口
可以使用 REST模式 来开发 App 接口,首先建立一个公共控制器,再建其他控制器继承它即可. 确定好返回的数据内容格式及信息码: (推荐学习:PHP视频教程)<?php // App接口公共 ...
- PHP开发APP接口(二)
这里将会调用前面博客的数据库连接单例.文件缓存类和开发APP接口(一) [php] view plain copy print? <?php // http://app.com/list.ph ...
- php开发APP接口 接收客户端的图片
php开发APP接口 接收客户端的图片 header( "Content-Type: image/jpeg" ); $filename = time(). '.png' ; $st ...
- php app接口开发,「PHP开发APP接口实战005」基础示例接口的实现一
前一章,我们对接口参数基本定义做了一个简要说明.里面提到了几个示例接口,接下来,我们就来讲解这个几点个示例接口的具体实现. 「PHP开发APP接口实战004」基础响应参数说明 前言 由于我们的接口返回 ...
- php app接口id参数类型过滤,PHP开发APP接口---返回数据的封装类
/** * app返回数据类 * 1.接受多维,缺少键名的数组, * 2.可由输入的format参数决定返回数据格式 * 例子:Response::show(200, 'success', $data ...
- PHP开发APP接口全过程(一)
1.学习要点: 服务器端 –> 数据库|缓存 –>调用接口 –>客户端 2.APP接口介绍:(PHP开发APP接口) PHP面向对象的接口:抽象类,interface定义 ==> ...
- php开发APP接口(一)
php开发APP接口(一) 使用PHP来生成APP接口数据是非常简单的,如果你还不了解PHP没有关系,只需要看过PHP的基本语法,再看本示例就可以了. APP接口一般都是json格式(当然也有少数xm ...
- php接口调用实例源代码,小蚂蚁学习APP接口开发(7)—— APP接口实例——读取缓存方式开发APP接口的代码案例...
从数据库中直接读取数据,虽然时效性很强,但是对数据库造成很大压力,尤其是在高访问量的情况下.这时候可以通过缓存,来有效的缓解了这一压力,虽然时效性有些不足,但是服务器的抗压能力却达到了很大的提高. 读 ...
最新文章
- _Linux和安卓之间可以传输文件吗?
- Linux下安装配置EasyPR中文车牌识别系统
- 计算机网络实验(华为eNSP模拟器)——第五章 单臂路由
- 分布式队列编程优化篇
- 针对 xml 数据类型的 XQuery (摘自SQL Server 2005 联机丛书)
- 使用 snapseed p 图,图片局部黑白,简单实用!!
- 如何将webp格式转换成png?
- 找老域名有没有什么好方法?
- 数学表达式基础——2 集合、向量与矩阵
- 惠普微型计算机主机拆卸,HP 惠普 Pavilion Wave 台式主机 拆机
- 实现163邮箱发送邮件功能
- B/S结构和C/S结构详细介绍
- 帝国理工创新领袖:数据驱动创新的五种模式
- 番外篇:STM32之GPIO口速率配置究竟代表什么
- MOS管及其外围电路设计
- Linux驱动开发-编写RFID-RC522射频刷卡模块驱动
- matlab fir stm32,求一个完整的STM32运算FIR滤波程序
- 电缆载流量试验方法 电线电缆载流量试验机
- python制作合同模板带图片_Python操作Word批量生成合同的实现示例
- 浅谈数据仓库维度建模
热门文章
- SAP License:最近收到的信(审计人员关于成本问题的请教)
- week one(1)—What is machine learning?
- 致敬!这些老外的开源技术养活了一票国产软件
- 《黑马程序员》 block的使用(Objective - c语法)
- Oracle 10g 用户数及价格
- FinTech领域的风险控制——策略篇
- js+springMVC 提交数组数据到后台
- hadoop1 hadoop2 fair-schduler 配置和使用
- pyglet -- 视频播放器 (简单实现,效果不是太好,切换资源会卡死)(三)
- .net程序部署(setupFactory进阶)