linlak/ridebooking

这是一个PHP库,用于向kaptal API添加行程预订功能。

1.0.1 2020-05-16 20:09 UTC

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)

(此处省略内容)