以前發佈了一篇關於個人
行車服務
appiOS
端代碼簡析的文章:文章地址。 此篇是對這個項目後端PHP
代碼的簡析。php
iOS端代碼地址: iOS代碼,PHP代碼。若是你以爲有幫助,但願可以點個Star
,感謝~mysql
筆者對於PHP
學習也剛開始不久,因此此篇不敢妄言指導,只是把這個項目後端代碼的結構、實現講述一遍,但願你們多多指教。
適合想要本身嘗試使用PHP
搭建一個API
項目的同窗閱讀。git
helper/
MySQL
交互、JSON
包裝函數、`返回結果函數。interface/
receiver.php
helper/
:common.php
:returnData ($msg, $code, $data)
:data
參數。{
"msg": "ok",
"code": "1",
"data": {
"count": "3",
"points_list": [{
"id": "19",
"poi_name": "sss",
"poi_address": "sss",
"uid": "fuck",
"points": "30"
},
{
"id": "25",
"poi_name": "洗車裝飾服務",
"poi_address": "北三環西路76號附近",
"uid": "B0FFHF5BKD",
"points": "30"
}]
}
}複製代碼
returnMsg ($msg, $code)
:{
"msg": "添加成功",
"code": "1"
}複製代碼
jsonHelper.php
:arrayRecursive(&$array, $function, $apply_to_keys_also = false)
函數做用是對數組中的元素遞歸地進行傳入的$function
操做。JSON($array)
函數用於將數組包裝爲JSON
格式。sqlHelper.php
:receiver.php
:url
示例即爲:服務器IP地址/DriverEpoch-Server/receiver.php
。if
參數,而後分發到對應的接口文件。if=Login
,即爲調用登陸接口,分發到登陸接口的實現文件:case "Login": require "interface/Login.php"; break;複製代碼
interface/
:這部分我對於兩個類型各選取一個接口來說述一下。github
AddPlace
:POST
方式傳入的各個參數以後,構建一條mysql
語句,做用是向對應的表插入一條數據:$sql = "INSERT INTO historyPlaces (user_id, latitude, longitude, place_name, place_address) VALUES ('$user_id', '$latitude', '$longitude', '$place_name', '$place_address')";複製代碼
mysql
表示執行成功,則返回JSON
格式的成功信息。不然返回失敗信息,此處就要使用前文提到的封裝好的工具函數。GetPlaces
:$sql = "SELECT add_time,place_name,place_address FROM historyPlaces WHERE user_id = '$user_id' ORDER BY add_time";複製代碼
mysql
返回結果的每一行都包裝成爲數組的一個元素,而後將數組包裝爲JSON
,返回給客戶端。$places_list = null;
$i = 0;
$num = mysqli_num_rows($sqlResult);
while($row = mysqli_fetch_array($sqlResult)) {
$places_list[$i]['add_time'] = $row['add_time'];
$places_list[$i]['place_name'] = $row['place_name'];
$places_list[$i]['place_address'] = $row['place_address'];
$i++;
if ($i >= $num){
break;
}
}
$data['count'] = $i;
$data['places_list'] = $places_list;
returnData("ok", 1, $data);複製代碼
其餘接口的實現文件大同小異,有一些具體的點你們能夠和我繼續交流。sql
PHP
的語法很是簡單,我我的以爲不太須要刻意去看語法,有其餘語言基礎的同窗看幾份代碼就能夠上手寫,敢於嘗試,加油!LAMP
架構的PHP
項目的教程,但願能和前文造成一個本身DIY全端項目的教程。項目已開源,若是以爲有用,但願點一下star
~感謝~
halo數據庫