forked from sebastianknopf/gtfs-realtime-php
-
Notifications
You must be signed in to change notification settings - Fork 0
/
create_message.php
63 lines (50 loc) · 1.54 KB
/
create_message.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
use Google\Transit\Realtime\Alert;
use Google\Transit\Realtime\EntitySelector;
use Google\Transit\Realtime\FeedEntity;
use Google\Transit\Realtime\FeedHeader;
use Google\Transit\Realtime\FeedMessage;
use Google\Transit\Realtime\TimeRange;
use Google\Transit\Realtime\TranslatedString;
use Google\Transit\Realtime\TranslatedString\Translation;
require '../vendor/autoload.php';
// create message header
$messageHeader = new FeedHeader();
$messageHeader->setGtfsRealtimeVersion('2.0');
$messageHeader->setTimestamp(time());
// create one alert body
$alert = new Alert();
$alert->setActivePeriod([
new TimeRange(['start' => time()])
]);
$alert->setInformedEntity([
new EntitySelector(['stop_id' => 1]),
new EntitySelector(['stop_id' => 2])
]);
$alert->setCause(Alert\Cause::OTHER_CAUSE);
$alert->setEffect(Alert\Effect::OTHER_EFFECT);
$alert->setHeaderText(new TranslatedString([
'translation' => [
new Translation([
'text' => 'Test-Message',
'language' => 'de'
]
)]
]));
$alert->setDescriptionText(new TranslatedString([
'translation' => [
new Translation([
'text' => 'TEST MESSAGE',
'language' => 'de'
]
)]
]));
// create alert entity
$messageEntity = new FeedEntity();
$messageEntity->setId(125522);
$messageEntity->setAlert($alert);
// create feed message
$feedMessage = new FeedMessage();
$feedMessage->setHeader($messageHeader);
$feedMessage->setEntity([$messageEntity]);
file_put_contents('ExampleAlert.pb', $feedMessage->serializeToString());