「PHP」行车服务app后端代码简析

栏目: PHP · 发布时间: 8年前

内容简介:「PHP」行车服务app后端代码简析

之前发布了一篇关于我的 行车服务 app iOS 端代码简析的文章:文章地址。 此篇是对这个项目后端 PHP 代码的简析。

iOS端代码地址: iOS代码,PHP代码。如果你觉得有帮助,希望能够点个 Star ,感谢~

笔者对于 PHP 学习也刚开始不久,所以此篇不敢妄言指导,只是把这个项目后端代码的结构、实现讲述一遍,希望大家多多指教。

适合想要自己尝试使用 PHP 搭建一个 API 项目的同学阅读。

项目结构

  • 封装好的公共文件

    • helper/

    • 这个部分包括 Mysql 交互、 JSON 包装函数、`返回结果函数。

  • 各个接口实现文件

    • interface/

    • 这个部分是各个接口的实现文件,由路由文件按需调用。

  • 入口文件,接口路由

    • receiver.PHP

    • 这个部分是整个项目的路由文件,接收请求,然后分发给各个接口实现文件。

代码实现

  • 公共文件 helper/

    这个文件封装了两个包装返回结果的函数。

    {     "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"         }]     }
    • returnData ($msg, $code, $data)

      适用于获取数据类型的接口,它带有 data 参数。

      返回结果示例:

    • common.PHP

}

- `returnMsg ($msg, $code)`: 适用于仅返回状态的接口。 返回结果示例:

{

"msg": "添加成功",

"code": "1"

}

“`

  • jsonHelper.PHP

    • arrayRecursive(&$array, $function, $apply_to_keys_also = false) 函数作用是对数组中的元素递归地进行传入的 $function 操作。

    • JSON($array) 函数用于将数组包装为 JSON 格式。

  • sqlHelper.PHP

    这个文件中对所使用数据库名称、账户信息等进行设置,大家可以按照自己的信息自行在此配置。

  • 路由文件 receiver.PHP

    case "Login": require "interface/Login.php"; break;
    • 这个文件是整个项目的调用入口,具体接口调用时的 url 示例即为: 服务器IP地址/DriverEpoch-Server/receiver.PHP

    • 本文件解析参数中的 if 参数,然后分发到对应的接口文件。

    • 例如, if=Login ,即为调用登录接口,分发到登录接口的实现文件:

  • 各个接口实现文件 interface/

    这部分我对于两个类型各选取一个接口来讲述一下。

    • 这个接口用于获取用户的所有历史足迹。

    • 参数列表:

    • 这种类型的接口比刚刚的稍微复杂一些。拿到参数后,构建一条查询语句,查询用户的所有历史遗迹:

    • user_id:用户id

    • 取到结果后,若结果条数为0,则返回结果条数为0的信息。否则,将 Mysql 返回结果的每一行都包装成为数组的一个元素,然后将数组包装为 JSON ,返回给客户端。

    • 这个接口用来为用户添加历史足迹。

    • 参数列表:

    • 很简单,解析到 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 格式的成功信息。否则返回失败信息,此处就要使用前文提到的封装好的 工具 函数。

    • user_id: 用户id

    • latitude:纬度

    • longitude:经度

    • place_name:地点名称

    • place_address:地点地址

    • 返回状态类型: AddPlace

    • 返回状态+数据类型: GetPlaces

      $sql = "SELECT add_time,place_name,place_address FROM historyPlaces WHERE user_id = '$user_id' ORDER BY add_time";
      $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);

其他接口的实现文件大同小异,有一些具体的点大家可以和我继续交流。

写在最后:

  • PHP 的语法非常简单,我个人觉得不太需要刻意去看语法,有其他语言基础的同学看几份代码就可以上手写,勇于尝试,加油!

  • 我后续会再写一篇关于自己部署 LAMP 架构的 PHP 项目的教程,希望能和前文形成一个自己DIY全端项目的教程。


以上所述就是小编给大家介绍的《「PHP」行车服务app后端代码简析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Artificial Intelligence

Artificial Intelligence

Stuart Russell、Peter Norvig / Pearson / 2009-12-11 / USD 195.00

The long-anticipated revision of this #1 selling book offers the most comprehensive, state of the art introduction to the theory and practice of artificial intelligence for modern applications. Intell......一起来看看 《Artificial Intelligence》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具