calcinai/siri

此软件包最新版本(v1.0.1)没有提供许可证信息。

实时信息 SDK 服务接口

v1.0.1 2019-07-20 02:50 UTC

This package is auto-updated.

Last update: 2024-09-20 14:27:21 UTC


README

该项目几乎完全由Siri xsd 架构在此找到

然后可以使用 HTTP 客户端(如 Guzzle)发布生成的 XML

安装

使用 composer

composer require calcinai/siri 

示例

序列化

use Calcinai\Siri\Objects\Siri;
use Calcinai\Siri\Objects\ServiceRequest;
use Calcinai\Siri\Objects\VehicleMonitoringRequest;
use Calcinai\Siri\Serializer

$requestTimestamp = new DateTime();

$siri = new Siri();
$request = new ServiceRequest();
$vmRequest = new VehicleMonitoringRequest();

$siri->setVersion(1.3)
    ->setServiceRequest($request);

$vmRequest->setVersion(1.3)
    ->setVehicleRef('3706')
    ->setRequestTimestamp($requestTimestamp);

$request->setVehicleMonitoringRequest($vmRequest)
    ->setRequestTimestamp($requestTimestamp)
    ->setRequestorRef('Requestor');

$serializer = new Serializer();
$xml = $serializer->serialize($siri);

echo $xml;

将产生如下 XML

<?xml version="1.0" encoding="UTF-8"?>
<Siri xmlns="http://www.siri.org.uk/siri" version="1.3">
  <ServiceRequest>
    <RequestTimestamp>2019-07-18T23:08:07+00:00</RequestTimestamp>
    <RequestorRef>Requestor</RequestorRef>
    <VehicleMonitoringRequest version="1.3">
      <RequestTimestamp>2019-07-18T23:08:07+00:00</RequestTimestamp>
      <VehicleRef>3706</VehicleRef>
    </VehicleMonitoringRequest>
  </ServiceRequest>
</Siri>

反序列化

上述 XML 可以反序列化以重新创建对象结构

$siri = $serializer->deserialize($xml);

print_r($siri); //The root siri object

致谢

此代码几乎完全由 xsd2php 生成,感谢 @goetas-webservices