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 package をインストールする必要があります。これを行うには、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());
}
}
gtfs-realtime.proto から生成される PHP クラスの命名規則の詳細については、gtfs-realtime.php ソースファイルを確認してください。