ZippyBus client
, (*1)
Интеграция с сервисом ZippyBus.com:
- Symfony 3.0+
- Нативный PHP 7.0+, (*2)
Установка и настройка
composer require itmedia/zippy-bus-bundle
Symfony 3
app/AppKernel.php:, (*3)
<?php
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = [
// ...
new Itmedia\ZippyBusBundle\ItmediaZippyBusBundle(),
];
}
// ...
}
app/config/config.yml:, (*4)
itmedia_zippy_bus:
token: 'my_token' # Токен, выданный сервисом
cache_ttl: 3600 # Время жизни кэша (секунд). По умолчанию 3600 (1 час)
Получить сервис доступа к расписанию:, (*5)
$zippyBusProvider = $container->get('itmedia_zippy_bus.provider');
Без использования Symfony
В этом случае необходимые сервисы (ZippyBusProvider
) нужно собрать вручную., (*6)
<?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());
Примеры использования
```php, (*7)
// Текущая дата расписания
$scheduleDate = ScheduleDate::createNow();, (*8)
// Город (Лида)
$city = $zippyBusProvider->getCity(1);, (*9)
// Доступные маршруты с направлениями на текущую дату
$routes = $zippyBusProvider->getRoutes($city, $scheduleDate);, (*10)
// $direction = $route->getDirections()[0];, (*11)
// Получить список остановок с расписанием движения для каждой остановки
$stops = $this->zippyBus()->getDirectionStops($direction);
``, (*12)