PHP GTFS-realtime 言語バインディング¶
GTFS-realtime Protocol Buffer 仕様から生成された PHP クラスを提供します。これらのクラスを使用することで、バイナリ形式の Protocol Buffer GTFS-realtime データフィードを PHP オブジェクトに変換して解析することができます。
他の言語でのバインディングについては、gtfs-realtime-bindings プロジェクトを参照してください。
非推奨
2019年2月時点で、公式の google-protobuf
Google protoc ツールは proto2 ファイルをサポートしていません。そのため、Google protocol buffer ツールで proto2 ファイルの公式サポートが実装されるまで、PHP バインディングは非推奨とします。
依存関係の追加¶
gtfs-realtime-bindings-php
クラスを自身のプロジェクトで使用するには、まず Packagist Composer パッケージ をインストールする必要があります。そのためには、composer.json
ファイルに依存関係を追加してください:
"require": {
"google/gtfs-realtime-bindings": "x.y.z"
}
ここで、x.y.z
は最新のリリースバージョンです:
次に、Composer の依存関係を更新してください:
composer update
コード例¶
以下のコードスニペットは、特定のURLからGTFS-realtimeデータフィードをダウンロードし、それを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 ソースファイル を参照してください。