2017 © Pedro Peláez
 

library simple-xml-mapper

Uses reflection to map XML to PHP objects.

image

robgridley/simple-xml-mapper

Uses reflection to map XML to PHP objects.

  • Friday, March 10, 2017
  • by robgridley
  • Repository
  • 1 Watchers
  • 4 Stars
  • 9 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

SimpleXMLMapper

Uses reflection to map XML to PHP objects. Inspired in part by sabre/xml., (*1)

Usage Example

<?xml version="1.0" encoding="utf-8"?>
<car>
    <manufacturer>
        <name>Volkswagen</name>
        <founded>1937-01-04 00:00:00</founded>
    </manufacturer>
    <model>Golf R</model>
    <year>2016</year>
    <msrp>39995.95</msrp>
    <colours>
        <colour>Lapiz Blue</colour>
        <colour>Oryx White</colour>
    </colours>
    <options>
        <option>
            <name>19-inch "Pretoria" Wheels</name>
        </option>
        <option>
            <name>Technology Package</name>
        </option>
    </options>
    <hybrid>false</hybrid>
    <awd>true</awd>
</car>
use DateTime;
use SimpleXMLElement;
use SimpleXmlMapper\XmlMapper;
use Symfony\Component\PropertyInfo\PropertyInfoExtractor;
use Symfony\Component\PropertyInfo\Extractor\PhpDocExtractor;
use Symfony\Component\PropertyInfo\Extractor\ReflectionExtractor;

class Car
{
    /**
     * @var Manufacturer
     */
    public $manufacturer;

    /**
     * @var string
     */
    public $model;

    /**
     * @var int
     */
    public $year;

    /**
     * @var float
     */
    public $msrp;

    /**
     * @var array
     */
    public $colours = [];

    /**
     * @var Option[]
     */
    public $options = [];

    /**
     * @var bool
     */
    public $hybrid;

    /**
     * @var bool
     */
    public $awd;
}

class Manufacturer
{
    /**
     * @var string
     */
    public $name;

    /**
     * @var DateTime
     */
    public $founded;
}

class Option
{
    /**
     * @var string
     */
    public $name;
}

$listExtractors = [new ReflectionExtractor];
$typeExtractors = [new PhpDocExtractor];
$extractor = new PropertyInfoExtractor($listExtractors, $typeExtractors);

$mapper = new XmlMapper($extractor);
$mapper->addType(DateTime::class, function ($xml) {
    return DateTime::createFromFormat('Y-m-d H:i:s', $xml);
});

$xml = new SimpleXMLElement(file_get_contents('car.xml'));
$car = $mapper->map($xml, Car::class);

The Versions

10/03 2017

dev-master

9999999-dev

Uses reflection to map XML to PHP objects.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Rob Gridley

xml reflection mapper object

10/03 2017

1.0.1

1.0.1.0

Uses reflection to map XML to PHP objects.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Rob Gridley

xml reflection mapper object

09/03 2017

1.0.0

1.0.0.0

Uses reflection to map XML to PHP objects.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Rob Gridley

xml reflection mapper object