Интеграция с сервисом ZippyBus.com:
- Symfony 3.0+
- Нативный PHP 7.0+
composer require itmedia/zippy-bus-bundle
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');
В этом случае необходимые сервисы (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);
``