itmedia / zippy-bus-bundle
Интеграция с сервисом ZippyBus.com
Installs: 20
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^7.0
- guzzlehttp/guzzle: ^6.0
- psr/simple-cache: ^1.0
Requires (Dev)
- phpunit/phpunit: ^6.0
This package is not auto-updated.
Last update: 2025-01-15 04:44:34 UTC
README
Интеграция с сервисом 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); ``