neilmcgibbon/php-open-rail-data

该包的最新版本(0.1.0)没有可用的许可证信息。

处理 Open Rail Data 创新项目的 API 事件的 PHP 库

0.1.0 2015-06-03 20:34 UTC

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 - 列车描述器事件

###尚不支持的数据源

  • Network Rail

    • ActiveMQ 实时数据源(通过 Stomp)
      • TSR - 临时速度限制
    • 静态数据源(通过 HTTP)
  • 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 目录以获取更多示例。