itmedia/zippy-bus-bundle

Интеграция с сервисом ZippyBus.com

v0.1.0 2017-09-04 13:36 UTC

This package is not auto-updated.

Last update: 2024-05-08 01:24:26 UTC


README

Scrutinizer Code Quality Build Status

Интеграция с сервисом ZippyBus.com:

  • Symfony 3.0+
  • Нативный PHP 7.0+

Установка и настройка

composer require itmedia/zippy-bus-bundle

Symfony 3

app/AppKernel.php:

<?php

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = [
            // ...
            new Itmedia\ZippyBusBundle\ItmediaZippyBusBundle(),        
        ];
    }
    
    // ...
}

app/config/config.yml:

itmedia_zippy_bus:
    token: 'my_token'   # Токен, выданный сервисом
    cache_ttl: 3600     # Время жизни кэша (секунд). По умолчанию 3600 (1 час)

Получить сервис доступа к расписанию:

$zippyBusProvider = $container->get('itmedia_zippy_bus.provider');

Без использования Symfony

В этом случае необходимые сервисы (ZippyBusProvider) нужно собрать вручную.

<?php

use \Itmedia\ZippyBusBundle\Client\ZippyBusClient;
use \Itmedia\ZippyBusBundle\ZippyBusProvider;
use \Itmedia\ZippyBusBundle\Factory\ScheduleObjectFromArrayFactory;

// Токен, выданный сервисом
$token = 'my_token';

// Любая библиотека кэширования с поддержкой PSR6 Simple cache, например https://github.com/symfony/cache
$cache = new Cache();

// Время жизни кэша (секунд). По умолчанию 3600 (1 час)
$cacheTtl = 3600; 

$apiClient = new ZippyBusClient($token, $cache, $cacheTtl);
$zippyBusProvider = new ZippyBusProvider($apiClient, new ScheduleObjectFromArrayFactory());

Примеры использования

// Текущая дата расписания
$scheduleDate = ScheduleDate::createNow();

// Город (Лида)
$city = $zippyBusProvider->getCity(1); 

// Доступные маршруты с направлениями на текущую дату 
$routes = $zippyBusProvider->getRoutes($city, $scheduleDate);


// $direction = $route->getDirections()[0];

// Получить список остановок с расписанием движения для каждой остановки  
$stops = $this->zippyBus()->getDirectionStops($direction);
``