ホームページ >バックエンド開発 >PHPチュートリアル >PHP開発アプリのインターフェース
インターフェイス キーワードを使用して定義します。例:
interface video(){
public function getVideos();
public function getCount();//これらはすべて仮想メソッドです
}
インターフェイスの実装: [インターフェースで指定されたすべてのメソッドはサンプルで実装する必要があります]
class movie 実装 video{
public function getVideo(){
//do something
}
public function getCount(){
//何かをする
}
}
インターフェイス アドレス??インターフェイス データを返す??データを解析する??クライアント
APP (通信) インターフェイス:
1. インターフェイス アドレス (http://app.com/api.php) ?format=xml);
2. インターフェース ファイル (api.php、一部のビジネス ロジックを処理します);
3. インターフェース データ
APP の通信方法:
クライアント アプリ トリガー??》http リクエストを送信します (インターフェースアドレス)??》サーバー??》クライアントに戻ります
返されるデータ形式は一般的にxmlまたはjsonです
アドレスはアプリ内でカプセル化されており、一般的なWebとは異なりユーザーには見えません
XML : 拡張マークアップ言語、ノードはカスタマイズ可能 (ただし、HTML 内のタグはカスタマイズ不可)、形式は統一されており、プラットフォーム間で使用でき、通信と送信に適しています。
例:
XML は可読性が高く、JSON 生成データと送信速度は強力です。
インターフェース機能: データの取得とデータの送信。
通信インターフェースをカプセル化するための JSON メソッド: json_encode() [UTF にある必要があります-8 形式]
例:
$arr = {
'id' => 1;
'username => トム'}
echo json_encode($arr);
iconv('UTF-8',' GBK ',$data)//エンコード変換に使用し、$dataをUTF-8からGBKに変換する例です
通信データ標準形式
1, code: 200 //ステータスコード
2, message / /プロンプト情報
3, data //データを返す
JSON カプセル化データメソッドの例 (response.php):
class Respomse{
public static function json($code,$message = ' ' ,$data = array()){
if(!is_numeric($code)){
return '';//渡された$codeが数値でない場合は空を返す
}
$result = array (
'code' => $code,
'message' =>
}
}
他のファイルでこのインターフェースを呼び出します:
require_once('./response.php') ;
$arr = array(
'id' => 1,
'name' => 'fareise'
);
Response::json(200,'データは正常に返されました','$ arr');//これは json データを返します
XML カプセル化インターフェース データ メソッド
XML データを生成する PHP メソッド
1. 文字列にアセンブルします。 2. 使用するシステム クラス (DomDocument; XMLWriter; SimpleXML)
例:
< ;?php
class Response{
public static function xml(){
header(“Content-Type:text/xml”);//型を XML 型に変換します
$xml = “ xml version='1.0'coding='UTF-8'?>n”
$xml.=”
$ xml.=”200
n”;
$xml.=”
…
$xml.=” ”;
echo $xml;
}
}
通信インターフェースのXMLカプセル化
class Response{
public static function xmlEncode($code,$message,$data){
if(!is_numeric($code)) {
return '';
}
$result = array(
'code' => $code,
'message' => $message,
'data' => $data,
);
header("Content-Type:text/xml");
$xml = ""
$xml . = "
$xml .= self::xmlToEncode($result) //定義されたメソッドを通じてデータの xm 解析を実行する
$xml .= “”;
}
publlc static function amlToEncode($ data ){ // このような走査を通じて各データをラベルとして書き込みます
$xml = $attr = “”;
foreach($data as $key => $value){// key が数値の場合に変換します
if(is_numeric($key)){
$attr = "id = '{$key}'";
$key = "item ";
}
$xml .= “<{$key}{$attr}>”;
//配列の場合は、再帰的メソッドを使用して、配列内の各要素をラベル付きで出力します
$xml . = is_array($value)?self::xmlToEncode($value):$value;
$xml .= “{key}>”
}
}
}
呼び出し例:
$data = array(
'id' => 1,
'name' => farise
'type => array(4,5,6)'
)
Response: ; '//デフォルト値を設定します
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(
)'コード' => $コード,
'メッセージ' => $メッセージ,
'データ' => $data
);
if($type == 'json') self::json($ code,$message,$data);
exit;
}elseif($type == 'array'){
var dump($result)
}elseif($type == 'xml'){
self::xmlEncode($code,$message,$data);
exit;
}else{
//TODO
}
}