PHP GTFS-realtime Language Bindings
, (*1)
Provides PHP classes generated from the
GTFS-realtime Protocol
Buffer specification. These classes will allow you to parse a binary Protocol
Buffer GTFS-realtime data feed into PHP objects., (*2)
For bindings in other languages, see the
gtfs-realtime-bindings
project., (*3)
Deprecated: As of February 2019, the official google-protobuf Google protoc tool doesn't support proto2 files. As a result we are deprecating the PHP bindings until official support for proto2 files is implemented in the Google protocol buffer tools., (*4)
Add the Dependency
To use the gtfs-realtime-bindings-php classes in your own project, you need
to first install the Packagist Composer
package. To do
so, add a dependency in your composer.json file:, (*5)
"require": {
"google/gtfs-realtime-bindings": "x.y.z"
}
Where x.y.z is the latest release version:, (*6)
, (*7)
Then update your Composer dependencies:, (*8)
composer update
Example Code
The following code snippet demonstrates downloading a GTFS-realtime data feed
from a particular URL, parsing it as a FeedMessage (the root type of the
GTFS-realtime schema), and iterating over the results., (*9)
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());
}
}
For more details on the naming conventions for the PHP classes generated from
the gtfs-realtime.proto,
check out the the gtfs-realtime.php source file., (*10)