calcinai/siri

There is no license information available for the latest version (v1.0.1) of this package.

Service Interface for Real Time Information SDK

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

This package is auto-updated.

Last update: 2024-03-20 13:34:38 UTC


README

This project is almost entirely generated from the Siri xsd shchemas found here

The generated XML can then be posted using a HTTP client (like Guzzle)

Instalation

With composer:

composer require calcinai/siri 

Example

Serialization

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;

Will produce XML like

<?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>

Deserialization

The xml above can be deserialized to recreate the object structure

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

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

Acknowlegments

This code is almost completely generated from xsd2php, thanks @goetas-webservices!