neilmcgibbon / php-open-rail-data
该包的最新版本(0.1.0)没有可用的许可证信息。
处理 Open Rail Data 创新项目的 API 事件的 PHP 库
0.1.0
2015-06-03 20:34 UTC
Requires
- php: >=5.5.0
- symfony/event-dispatcher: 2.7.0
Requires (Dev)
- phpunit/phpunit: 4.6.*
This package is not auto-updated.
Last update: 2024-09-28 18:15:55 UTC
README
一个用于消费 Open Rail Data 创新项目数据的 PHP 库。
目前仅支持 Network Rail 的 Stomp(ActiveMQ)数据,但将来将添加对静态 Network Rail 数据(如时刻表)和 National Rail 的 Stomp 支持的支持。
安装
这是通过 composer(packagist)完成的。将以下内容添加到您的 composer.json 文件中
{
"require": {
"neilmcgibbon/php-open-rail-data": "0.1.0"
}
}
当前支持的数据源
- Network Rail
- ActiveMQ 实时数据源(通过 Stomp)
- RTPPM - 实时乘客性能测量
- VSTP - 非常短期计划
- Train Movements - 取消、激活、恢复等
- TD - 列车描述器事件
- ActiveMQ 实时数据源(通过 Stomp)
###尚不支持的数据源
-
Network Rail
- ActiveMQ 实时数据源(通过 Stomp)
- TSR - 临时速度限制
- 静态数据源(通过 HTTP)
- Schedule - 时刻表数据
- Reference Data - 参考数据
- ActiveMQ 实时数据源(通过 Stomp)
-
National Rail
- 所有数据源类型
用法
Stomp - Network Rail 事件
事件通过观察者/事件调度器模式进行处理
示例
监听实时乘客性能测量(RTPPM 事件),然后输出“国家页面”级别的晚点列车数量
创建事件监听器
class ExampleEventListener { public function onEventReceived(RtppmEvent $event) { echo "Received event. National page late trains count: "; echo $event->getNationalPage()->getPerformance()->getLateCount() . PHP_EOL; } }
创建连接并开始监听
$connection = new \OpenRailData\NetworkRail\Services\Stomp\Connection( "network_rail_username", "network_rail_password" ); // Create the Topic. $topic = new OpenRailData\NetworkRail\Services\Stomp\Topics\Rtppm\RtppmTopic(); // Add our event listener to the topic $topic->addListener(new ExampleEventListener()); // Subscribe to the topic by adding the topic to the connection $connection->addTopic($topic); // Start listening for events, the rest is handled by our event listener :-) $connection->listen();
就这样!
将会有更多文档和功能。请参阅 /examples 目录以获取更多示例。