コンテンツにスキップ

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 package をインストールする必要があります。これを行うには、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());
  }
}

gtfs-realtime.proto から生成される PHP クラスの命名規則の詳細については、gtfs-realtime.php ソースファイルを確認してください。