コンテンツにスキップ

PHP GTFS-realtime 言語バインディング

PHP version

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 は最新のリリースバージョンです:

PHP version

次に、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 ソースファイル を参照してください。