Home > Backend Development > PHP Tutorial > The whole process of developing APP interface with PHP (1)

The whole process of developing APP interface with PHP (1)

angryTom
Release: 2023-04-07 15:04:01
forward
4032 people have browsed it

1. Learning points:

Server side –> Database | Cache –> Call interface –> Client

2. APP Interface introduction: (PHP development APP interface)

PHP object-oriented interface: abstract class, interface definition==>interface.php

===>1. Very Specification

APP interface (communication interface): obtain data through the interface and fill the data into the APP

—>APP developer attention: request APP address (interface address) return data

APP (communication) interface definition:

1. Interface address: http://app.com/api.php?format=xml

2. Interface file: app. PHP handles some business logic

3. Interface data

(Recommended learning: PHP video tutorial)

3. Client APP communication :

How APP communicates:

      C   (接口地址:http://app.com/api.php?format=xml/json)     S
   客户端APP            ------------------------------>             服务器
                      <-----------------------------                                    
                         返回数据
Copy after login

4. Client APP communication format difference

1.xml: extension tag Language (1. Used to mark data and define data types. It is a source language that allows users to define their own markup languages. The XML format is unified, cross-platform and language, very suitable for data transmission and communication, and has long been recognized by the industry. Standard)

<?xml version="1.0" encoding="UTF-8"?>
    <item>
        <title>测试</title>
        <test id="1">
        <description>测试oen</description>
        <address>深圳</address>
    </item>
Copy after login

2.json: A cool-level data exchange format with good readability and easy to write quickly. It can be used for data exchange on different platform certificates. JSON uses high compatibility , completely independent of the language text format. This property makes JSON an ideal data exchange language.

The readability of XML is better, the data generation of JSON (json_encode (array)) and the transmission speed are better

5. What the APP interface does:

Get data: Get data from the database or cache, and then return the data to the client through the interface

Submit data: Submit the data to the server through the interface, and then enter the database for processing through the server, or other processing

6.JSON encapsulation communication interface

PHP generates json data: json_encode($arr);

Note: This function can only accept UTF -8 encoded data, if you pass data in other formats, the function will return null

Communication data annotation format:

code 状态码(200 400等) 
message 提示信息(邮箱格式不正确;数据返回成功等) 
data 返回相应的数据 
—————————- 
-JSON 
code : 200 
message :”数据返回成功” 
-data 
id :1 
name : “测试”
Copy after login

Instance:

  某个server中:
    public  function json($code,$message = &#39;&#39;,$data = array())
    {
            if (!is_numeric($code)){
                return &#39;错误&#39;;
            }
             $result = array(
                &#39;code&#39; => $code,
                &#39;message&#39; => $message,
                &#39;data&#39; => $data
        );
        echo json_encode($result);
        exit;
       }
Copy after login

A certain Controller:

    public function jsonsAction()
           {
               $arr = array(
                   &#39;id&#39; => 1,
                   &#39;name&#39; => &#39;jiang&#39;
              );
            $k = wei()->zhwCategory()->json(200,&#39;成功咯&#39;,$arr);
            return $k;
            }
Copy after login

Browser: http://127.0.0.1/admin/zhw-categorys/jsons

{"code":200,"message":"\u6210\u529f\u54af","data":{"id":1,"name":"jiang"}}
Copy after login

7.PHP generates XML data:

7.1 PHP generates XML data

1. Assemble string

2. Use system class: DomDocument

XMLWriter

SimpleXML

If used DomDocument:

    <?php 
                     $dom = new DomDocument(&#39;1.0&#39;,&#39;utf-8&#39;);
                     $element = $dom->createElement(&#39;test&#39;,&#39;This id root element&#39;);
                     $dom->appendChild($element);
                     echo $dom->saveXML();
              ?>
Copy after login

====>Result:

           <?xml version="1.0" encoding="utf-8"?>
           <test>This is the root element</test>
Copy after login

Simple instantiation using assembled string:

    public static function xml()
            {
                  header("Content-Type:text/html");
                  $xml = "<?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;?>\n";
                  $xml .= "<root>\n";
                  $xml .= "<code>200</code>\n";
                  $xml .= "<message>数据返回成功</message>\n";
                  $xml .= "<data>\n";
                  $xml .="<id>1</id>\n";
                  $xml .="<name>测试</name>\n";
                  $xml .="</data>\n";
                  $xml .="<root>";
                  echo $xml;
             }
Copy after login
  7.2封装XML数据方法:
          封装方法:xmlEncode($code,$message=&#39;&#39;,$data = array());
         data数据分析:
                 1.array(&#39;index&#39; => &#39;api&#39;);
                 2.array(1,7.89);
        具体:
            server模块下:
Copy after login
    public function xmlEncode($code,$message = &#39;&#39;,$data=array())
             {
                 if(!is_numeric($code)){
                    return "错误";
                 }
                 $result = array(
                     &#39;code&#39; => $code,
                     &#39;message&#39; => $message,
                     &#39;data&#39; => $data,
                 );
                 header("Content-Type:text/xml");
                 $xml = "<?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;?>\n";
                 $xml .= "<root>\n";
                 $xml .=self::xmlToEncode($result);
                 $xml .="</root>";
                 echo $xml;
             }
Copy after login
        //对数据再处理
Copy after login
    public function xmlToEncode($data){
               $xml = $attr ="";
               foreach ($data as $key=>$value){
               if(is_numeric($key)){
                   $attr = "id=&#39;{$key}&#39;";
                   $key = "item";
               }
               $xml .= "<{$key} {$attr}>";  //它们{$key} {$attr}之间要有一个小空格
               $xml .=is_array($value) ? self::xmlToEncode($value):$value;
               $xml .="</{$key}>\n";
            }
               return $xml;
            }
Copy after login
某个Controller:
Copy after login
     public function xmlsAction()
        {
            $arr = array(
               &#39;id&#39; => 1,
               &#39;name&#39; => &#39;jiang&#39;,
               &#39;type&#39; =>array(4,5,6),
               &#39;test&#39; =>array(1,45,67=>array(1,2,3)),
            );
           $k = wei()->zhwCategory()->xmlEncode(200,&#39;成功咯&#39;,$arr);
           return $k;
         }
Copy after login

8 .Comprehensive method of encapsulating communication data:

   封装方法:show($code,$message,$data=array(),$type=&#39;json/xml&#39;)
Copy after login

Final page:

server:

<?php

namespace Miaoxing\Zhw\Service;

use miaoxing\plugin\BaseModel;

class ZhwCategory extends BaseModel
{
    const JSON = "json";
    /**
     * 按x综合方式输出通信数据
     * @param integer $code 状态码
     * @param string $message 提示信息
     * @param array $data 数据
     * @param string $type 数据类型
     * return string
     */
    public function show($code,$message=&#39;&#39;,$data=array(),$type = self::JSON)
    {
        if (!is_numeric($code)){
            return "错误编码";
        }
        $result = array(
            &#39;code&#39; => $code,
            &#39;message&#39; => $message,
            &#39;data&#39; => $data,
        );
        if($type == &#39;json&#39;){
            self::json($code,$message,$data);
            exit;
        }elseif($type == &#39;array&#39;){
            var_dump($result);
        }elseif ($type == &#39;xml&#39;){
            self::xmlEncode($code,$message,$data);
            exit;
        }else{
            //TODO
        }
    }
    /**
     * 按json方式输出通信数据
     * @param integer $code 状态码
     * @param string $message 提示信息
     * @param array $data 数据
     * return string
     */
    public  function json($code,$message = &#39;&#39;,$data = array())
    {
        if (!is_numeric($code)){
            return &#39;错误&#39;;
        }
        $result = array(
            &#39;code&#39; => $code,
            &#39;message&#39; => $message,
            &#39;data&#39; => $data
        );
        echo json_encode($result);
        exit;
    }
    /**
     * 按xml方式输出通信数据
     * @param integer $code 状态码
     * @param string $message 提示信息
     * @param array $data 数据
     * return string
     */
    public function xmlEncode($code,$message = &#39;&#39;,$data=array())
    {
        if(!is_numeric($code)){
            return "错误";
        }
        $result = array(
            &#39;code&#39; => $code,
            &#39;message&#39; => $message,
            &#39;data&#39; => $data,
        );
        header("Content-Type:text/xml");
        $xml = "<?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;?>\n";
        $xml .= "<root>\n";
        $xml .=self::xmlToEncode($result);
        $xml .="</root>";
        echo $xml;
    }
    //对数据再处理
    public function xmlToEncode($data){
        $xml = $attr ="";
        foreach ($data as $key=>$value){
            if(is_numeric($key)){
                $attr = "id=&#39;{$key}&#39;";
                $key = "item";
            }
            $xml .= "<{$key} {$attr}>";
            $xml .=is_array($value) ? self::xmlToEncode($value):$value;
            $xml .="</{$key}>\n";
        }
        return $xml;
    }
}
Copy after login
Controller:
public 
function jsonsAction()
    {
        $arr = array(
            &#39;id&#39; => 1,
            &#39;name&#39; => &#39;jiang&#39;
        );
        $k = wei()-
>zhwCategory()->json(200,&#39;成功咯&#39;,$arr);
        return $k;
    }
    public function xmlsAction()
    {
        $arr = array(
            
&#39;id&#39; => 1,
            &#39;name&#39; => &#39;jiang&#39;,
            &#39;type&#39; =>array(4,5,6),
            &#39;test&#39; =>array(1,45,67=>array(1,2,3)),
        
);
        $k = wei()->zhwCategory()->xmlEncode(200,&#39;成功咯&#39;,$arr);
        return $k;
    }
    public function showAction()
    {
        
$arr = array(
            &#39;id&#39; => 1,
            &#39;name&#39; => &#39;jiang&#39;,
            &#39;type&#39; =>array(4,5,6),
            &#39;test&#39; =>array
(1,45,67=>array(1,2,3)),
        );
        $k = wei()->zhwCategory()->show(200,&#39;成功咯&#39;,$arr,&#39;json&#39;);
        return $k;
    }
Copy after login

The above is the detailed content of The whole process of developing APP interface with PHP (1). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:csdn.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template