Skip to content

calcinai/siri

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Siri

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!