php在app開發中的應用

php做爲服務端的開發語言在app開發中扮演着鏈接客戶端和數據庫的角色,客戶端經過調用由php開發的接口完成對數據庫的操做,php代碼中實現用戶業務邏輯的部分。客戶端須要傳遞一些參數給服務端php,這些參數的格式由客戶端開發人員和服務端開發人員共同協商制定,二者遵循同一套標準,使得雙方之間傳遞的數據可以被正確解析。在實際開發中json格式的數據被普遍用於客戶端和服務端數據的交互,幾乎每種語言都支持json數據的解析,在php中使用json_encode()和json_decode()即可,很是便捷。php

在php爲app開發接口中須要注意如下幾點:mysql

一、數據傳輸建議使用json,json具備很強的跨平臺性,大多編程語言都支持json解析,json正在逐步取代xml,成爲網絡數據的通用格式。web

二、爲了保證接口安全,必定要加入鑑權體系,確保請求php接口的是合法來源。另外對於傳輸的數據也可使用加密技術,本書第20章有講述關於api接口簽名和信息加密的內容。sql

三、對於線上的API,儘可能使用error_reporting(0)關閉錯誤提示,或者把錯誤提示寫入到日誌中,方便往後排查。這樣作的目的,一方面能夠保護接口安全,防止輸出不應打印的錯誤信息,另外一方面是保證輸出的是正確的數據格式,防止輸出錯誤信息被客戶端錯誤解析而出現的接口調用異常。數據庫

四、開發 API 和 WEB 有必定的區別,若是接口返回的格式不規範,被客戶端拿到解析,可能會致使客戶端閃退崩潰等狀況的出現,因此在接口上線以前必定要充分的測試。編程

五、儘量保證php寫出的代碼的性能,手機應用比web應用對響應速度的要求更高,由於用戶手機性能的巨大差別,手機應用在從服務端取到數據後要進行數據重組頁面渲染等會比web應用消耗更多的時間。json

客戶端和服務端之間選定json做爲數據傳輸格式,以後便要約定json中各字段的含義,通常在json數據中定義至少三個字段,分別爲返回狀態碼,返回狀態描述和數據內容。好比一個定義返回用戶信息的的json數據以下:api

{「code":0,"msg":"success","data":{"name":"chenxiaolong","age":"22","gender":"male"}}安全

其中code值爲0表示客戶端這次請求接口成功,msg字段說明這次請求的狀態,與返回狀態碼code對應,data中是客戶端想要取到的具體內容,裏面包含服務端返回的用戶信息。在data字段開發者可根據不一樣的接口須要定義不一樣的字段格式。微信

此接口的簡單代碼示例以下:

function getUserInfo() {

$uid = $_REQUEST[‘uid'];

$user = new User();

if($data = $user->findByUid($uid) != false) {

$this->output($data);

} else {

$this->output('',1,'invalid uid');

}

}

客戶端經過調用getUserInfo接口並傳入用戶的uid參數,php接收該參數到mysql數據庫用戶表裏根據此uid查詢用戶相關信息,其中User是一個封裝的用戶表模型,它提供根據用戶uid查詢用戶信息的findByUid方法,若是查詢到用戶信息就輸出用戶信息,不然返回錯誤信息給到客戶端,此處返回的錯誤狀態碼定義爲1,表示不合法的uid,即在用戶表裏沒有查詢到該uid對應的數據記錄。

接口用到了一個公用output方法,此方法是輸出json數據的具體實現,示例代碼以下:

function output(,$data='',$code=0,$msg='success') {

$out = array('code'=$code,'msg'=>$msg,'data'=>$data);

echo json_encode($out);

}

注意向客戶端返回數據時使用的是echo輸出而不是return。

本文節選自 《php7實踐指南》 陳小龍著

微信掃一掃,發現更多內容

761c57ad902ff50c.jpg

相關文章
相關標籤/搜索