linlak / ridebooking
这是一个PHP库,用于向kaptal API添加行程预订功能。
1.0.1
2020-05-16 20:09 UTC
Requires
- linlak/dbabstratclass: ^1.0
This package is auto-updated.
Last update: 2024-09-18 00:30:58 UTC
README
行程预订是一个PHP库,用于将行程预订、拼车、配送和货物运输添加到我们的API中。
安装
要安装此库,您需要已安装composer,如果您在实时服务器上托管它,则需要ssh访问权限。请在终端或cmd窗口中运行以下命令。
composer require linlak/ridebooking
入门
此库已被设计为即插即用的插件,包含所有功能,所有您需要的是在API中创建一个行程预订端点。通过安装并使用所需参数初始化此库就足够了,为您提供一个坚实的基础。
初始化
要初始化此库,您需要在您的类中创建一个 RidesBooking\TripBootstrap 实例或扩展它。
此类包含了所有以下 方法
- 注册司机
- 注册车辆
- 确认司机
- 验证车辆
- 分配司机
- 查找附近的司机
以及更多功能,如以下示例所示。要快速入门,请查看示例文件夹。
让我们先创建一个用于引导库的文件
bootrap.php
<?php
require_once(__DIR__.'../../vendor/autoload.php');
// header('Access-Control-Allow-Origin: *');
use RidesBooking\TripBootstrap;
/**
* @var \RidesBooking\TripBootstrap
*/
$tripCtonroller = new TripBootstrap('localhost:3306', 'trips', 'root', '');
return $tripCtonroller;
TripBootstrap 接受以下参数。
- $dbHost在此情况下 localhost:3306 只支持mysql数据库
- $dbName您要用于存储数据的数据库
- $dbUser具有写权限的用户
- $dbPass用户的密码
- $shouldDelete这是一个布尔字段,应在设置期间使用,旨在每次引导库时删除现有的表。
最后一个参数默认为false,您应该将其设置为false或省略它以避免丢失数据
注意
此操作仅删除具有 ridebooking_ 前缀的表,而不是数据库中的所有表。如果您在数据库中有其他表,您需要遵循mysql文档中的步骤
注册司机
要注册司机,只需将 bootstrap.php 包含到您的PHP文件中,如下所示。
trips/drivers/register.php
<?php
require_once('../../bootstrap.php');
$status = 'failed';
$message = 'Sorry fix a few things';
$output = [];
$data = $tripCtonroller->retrievePostData();
if (isset($data) && isset($data['name']) && isset($data['permit_class'])) {
$name = $data['name'];
$permit_class = $data['permit_class'];
$has_vehicle = (isset($data['has_vehicle'])) ? $data['has_vehicle'] : false;
$result = $tripCtonroller->registerDriver((int) $_GET['id'], $name, $permit_class, $has_vehicle);
switch ($result[0]) {
case 'error':
$message = 'Error saving data try again';
break;
case 'exists':
$message = 'Driver already registered';
$status = 'exists';
$output['driver'] = $result[1]['id'];
break;
case 'inserted':
$status = 'success';
$message = 'Data saved successfully';
$driver = $result[1];
switch ($driver['status']) {
case 'pending':
$level = 1;
$message = 'You need to complete your registration';
break;
case 'verified':
$level = 2;
$message = 'All good';
break;
case 'deleted':
$level = 3;
$message = 'Your info was deleted';
}
if ($driver['status'] != 'deleted') {
$formartedDriver = [
'id' => (int) $driver['id'],
'name' => $driver['name'],
'permit_class' => $driver['permit_class'],
'has_vehicle' => (bool) $driver['has_vehicle'],
'status' => $driver['status']
];
if ($driver['image_url']) {
$formartedDriver['image_url'] = $driver['image_url'];
}
$output['driver'] = $formartedDriver;
}
$output['level'] = $level;
break;
default:
$message = "Unknown error!";
break;
}
} else {
$message = "Invalid data submitted";
}
$output['status'] = $status;
$output['message'] = $message;
$tripCtonroller->echoJson($output);
上面的示例展示了注册司机的所有验证步骤
让我们来分析一下
这里的主要功能是 registerDriver 方法,位于 TripBootstrap 实例上,在本例中为 $tripController,并接受以下参数。
- $user_id - 被注册为司机的用户的ID
- $name - 被注册为司机的用户的名字
- $permit_class - 司机的许可等级。
- $has_vehicle - 一个布尔字段,表示用户是否有自己的车辆。
- $admin_id - 这是注册用户为司机的管理员的ID。可选,如果数据来自尝试注册为司机的用户表单
此函数返回以下数据
array($status, $driver)
(此处省略内容)