zoukankan      html  css  js  c++  java
  • api响应类

    接口开发响应类封装

    class response{    
        /*
        * 封通信接口数据
        * @param integer $code 状态码
        * @param string $message 状态信息
        * @param array $data 数据
        * return string 
        */
        public static function api_response($code, $message='', $data=array()){
                    //记录错误日志
                    if (1 !== $code) {
                            $logger = new logger();
                            $logger->conf['log_file'] = _LOG_DIR_ . 'api_error' . '.log';
                            $logger->log(array(substr(getIp(), 0, 15), '['.date("Y-m-d H:i:s").']',        'code: '.$code, 'message: '.$message));
                    }
            
                    $type = isset($_REQUEST['format'])?$_REQUEST['format']:'';
            switch ($type) {
                case 'json':
                    self::json_response($code, $message, $data);
                    break;
                case 'xml':
                    self::xml_response($code, $message, $data);
                    break;
                case 'array':
                    self::array_response($code, $message, $data);
                    break;
                default:
                    self::json_response($code, $message, $data);
                    break;
            }
        }
    
        /*
        * 封装数为json数据类型
        * @param integer $code 状态码
        * @param string $message 状态信息
        * @param array $data 数据
        * return string 
        */
        public static function json_response($code, $message='', $data=array()){
            $result = self::grant_array($code, $message, $data);
            echo json_encode($result);
            exit;
        }
    
        /*
        * 封装数为xml数据类型
        * @param integer $code 状态码
        * @param string $message 状态信息
        * @param array $data 数据
        * return string 
        */
        public static function xml_response($code, $message='', $data=array()){
            $result = self::grant_array($code, $message, $data);
    
            header("Content-Type:text/xml");
            $xml = "<?xml version='1.0' encoding='UTF-8'?>".PHP_EOL;
            $xml .= "<root>".PHP_EOL;
            $xml .= self::xml_encode($result);
            $xml .= "</root>";
            echo $xml;
            exit;
        }
            
            /*
        * 封装数为array数据类型
        * @param integer $code 状态码
        * @param string $message 状态信息
        * @param array $data 数据
        * return string 
        */
            public static function array_response($code, $message='', $data=array()){
                    $result = self::grant_array($code, $message, $data);
                    echo var_export($result, true);
                    exit;
            }
    
        /*
        * 将数组转换为XML格式
        * @param array $array 数组
        * return string 
        */
        private static function xml_encode($array=array()){
            $xml = $attr = "";
    
            if(!empty($array)){
                foreach ($array as $key => $value) {
                    if(is_numeric($key)){
                        $attr = " id='{$key}'";
                        $key = "item";
                    }
                    $xml .= "<{$key}{$attr}>" ;
                    $xml .= is_array($value) ? self::xml_encode($value) : $value;
                    $xml .="</{$key}>".PHP_EOL;
                }
            }
            return $xml;
        }
    
        /*
        * 按照接口格式生成原数据数组
        * @param integer $code 状态码
        * @param string $message 状态信息
        * @param array $data 数据
        * return array 
        */
        private static function grant_array($code, $message='', $data=array()){
            if(!is_numeric($code)){
                return '';
            }
                    $data['date'] = date('Y-m-d H:i:s');
            $result = array(
                'code' => $code,
                'message' => $message,
                'data' => $data
            );
    
            return $result;
        }
    }

    日志类封装

    class logger
    {
            /**
             * 配置
             */
            public $conf = array(
                    'log_file' => '',        
                    'separator' => ' ',
            );
    
            /**
             * 文件句柄
             */
            private $fileHandler;
    
            /**
             * 获得文件句柄
             * @return resource fileHandler
             */
            protected function getFileHandler()
            {
                    if (null === $this->fileHandler)
                    {
                            if (empty($this->conf['log_file']))        
                            {
                                    trigger_error('no log file spcified');
                            }
                            $logDir = dirname($this->conf['log_file']);
                            if (!is_dir($logDir))
                            {
                                    mkdir($logDir, 0777, true);
                            }
                            $this->fileHandler = fopen($this->conf['log_file'], 'a');
                    }
                    return $this->fileHandler;
            }
    
            /**
             * 记录日志
             * @param mixed $logData
             */
            public function log($logData)
            {
                    if ('' == $logData || array() == $logData)
                    {
                            return false;
                    }
                    if (is_array($logData))
                    {
                            $logData = implode($this->conf["separator"], $logData);
                    }
                    $logData = $logData. "
    ";
                    fwrite($this->getFileHandler(), $logData);
                    fclose($this->getFileHandler());
            }
    }

    来自:http://bbs.php-z.com/thread-3101-1-1.html

  • 相关阅读:
    3.2 机器学习基本算法
    《TensorFlow深度学习应用实践》
    基于element动态调整table高度
    关于小程序表单验证解决方案
    LHS与RHS
    小程序---获取地理位置及获取用户userinfo信息
    element----修改element中table里面的右侧滚动条样式
    关于微信里wx.getUserInfo获取用户信息都是拼音的转成中文方法
    element中upload单图片转base64后添加进数组,请求接口
    vue的生命周期
  • 原文地址:https://www.cnblogs.com/yhdsir/p/5536544.html
Copyright © 2011-2022 走看看