接口app简单封装(第一章)

1:接口我们有json和xml格式,但是,在我们做接口的过程中,为了方便开发人员,我们需要设置混合方式,更方便开发人员调用哪种接口

下面是我简单的写了个小demo

<?php

class Response
{
    const JSON='json';
    /*
     * 按综合通信方式输出通信数据
     * @param interger $code 状态码
     * @param string $message 提示信息
     * @param string array $-data 数据
     * @param string array $type 数据类型
     * return
     */
    public static function show($code, $message='',$data=array(),$type=self::JSON){
        if(!is_numeric($code)){
            return '';
        }
       $type=$_GET['format']?$_GET['format']:self::JSON;
        $result=array(
            'code'=>$code,
            'mesage'=>$message,
            'data'=>$data
        );
        if($type=='json'){
             self::json($code,$message,$data);
        }elseif( $type=='array'){
            var_dump($result);
        }elseif($type=='xml'){
            self::xmlEncode($code,$message,$data);
        }else{
            //待定
        }
    }
    /*
     * 按json通信方式输出通信数据
     * @param interger $code 状态码
     * @param string $message 提示信息
     * @param string array $-data 数据
     * return
     */
    public static function json($code, $message='',$data=array()){
        if(!is_numeric($code)){
            return '';
        }
        $result=array(
            'code'=>$code,
            'mesage'=>$message,
            'data'=>$data
        );
        echo json_encode($result);
        exit;
    }
    /*
     * 按xml通信方式输出通信数据
     * @param interger $code 状态码
     * @param string $message 提示信息
     * @param string array $-data 数据
     * return
     */
    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' ?>";
        $xml.="<root>\n";
        $xml.=self::xmlToEncode($result);
        $xml.="</root>";
        echo $xml;exit;
    }
    public static function xmlToEncode($data){
        $xml=$attr="";
        foreach($data as $k=>$v){
            if(is_numeric($k)){
                $attr="id='$k'";
                $k="item";
            }
            $xml.="<$k $attr >";
            $xml.=is_array($v)?self::xmlToEncode($v):$v;
            $xml.="</$k>\n";
        }
        return $xml;
    }
}
//是否成功
$data=array(
    'id'=>1,
    'name'=>'sinagwa',
    'type'=>array(1,2,3=>array(1,25,32=>array('asdf',45)),342,234),
);
Response::json(200,'success',$data);
2:静态缓存:就是保存在磁盘上的静态文件,用php生成数据放在静态文件中;

那么,php是如何操作缓存的:1:生成缓存 2:获取缓存 3:删除缓存 

我给大家提供个demo,直接拿过去用就行

<?php
class File{
    private  $_dir;
    const EXT='.txt';
    public function __construct()
    {
        $this->_dir=dirname(__FILE__).'/files/';
    }
    /*
    * 生成缓存 获取缓存 删除缓存
    * @param string $key 文件名
    * @param string $value 数据
    * @param string url $path 路径
    * return
    */
    public function cacheDate($key,$value='',$path){
        $filename=$this->_dir.$path.$key.self::EXT;
        if($value!==''){
            //删除缓存
            if(is_null($value)){
                return @unlink($filename);
            }
            //将value值写入缓存
            $dir=dirname($filename);
            if(is_dir($dir)){
                mkdir($dir,0777);
            }
            //写入缓存中
            return file_put_contents($filename,json_encode($value));
        }
        if(!is_file($filename)){
            return flase;
        }else{
            //获取缓存
            return json_decode(file_get_contents($filename),true);
        }
    }
}
3:缓存我们也可以有memcache和redis缓存技术,

(1):Memcache和redis都是用来管理数据的

(2):他们疏忽都是存放在内存里的

(3):redis可以定期经数据备份到磁盘(持久化)

(4):Memcache只是简单的key/value缓存

(5):redis不仅仅支持简单的k/v类型的数据,同时,还提供list,set,hash等数据结构的存储

关于这个memcache和redis这个缓存技术,我就不在这里详细的介绍了,大家可以自己搜下这个该怎么用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值