Языковые привязки PHP GTFS-realtime¶
Предоставляет классы PHP, созданные на основе спецификации ProtocolBuffer GTFS-realtime. Эти классы позволят вам разобрать двоичный поток данных ProtocolBuffer GTFS-realtime в объекты PHP.
Для привязок на других языках, смотрите проект the gtfs-realtime-bindings project.
Утративший силу
По состоянию на февраль 2019 года официальный инструмент google-protobuf
Google protoc не поддерживает файлы proto2. В связи с этим мы прекращаем использование привязки PHP до тех пор, пока официальная поддержка файлов proto2 не будет реализована в инструментах буфера протокола Google.
Добавьте зависимость¶
Чтобы использовать классы gtfs-realtime-bindings-php
в своем проекте, вам необходимо сначала установить пакет Packagist Composer. Для этого добавьте зависимость в файл composer.json
:
"require": {
"google/gtfs-realtime-bindings": "x.y.z"
}
Где x.y.z
- последняя версия релиза:
Затем обновите зависимости Composer:
composer update
Пример кода¶
Следующий фрагмент кода демонстрирует загрузку потока данных GTFS-realtime с определенного URL, его разбор как FeedMessage (корневой тип схемы GTFS-realtime) и итерацию результатов.
require_once 'vendor/autoload.php';
use transit_realtime\FeedMessage;
$data = file_get_contents("URL OF YOUR GTFS-REALTIME SOURCE GOES HERE");
$feed = new FeedMessage();
$feed->parse($data);
foreach ($feed->getEntityList() as $entity) {
if ($entity->hasTripUpdate()) {
error_log("trip: " . $entity->getId());
}
}
Для получения более подробной информации о соглашениях об именовании классов PHP, созданных на основе gtfs-realtime.proto, ознакомьтесь с исходным файлом gtfs-realtime.php.