harmbandstra/edexmllib

PHP Library for validating and importing Edexml files.

2.0.0 2022-12-01 21:07 UTC

This package is auto-updated.

Last update: 2024-03-29 03:20:39 UTC


README

PHP Library for validating and importing Edexml files.

Installation

Install with composer:

$ composer require harmbandstra/edexmllib

Usage

    $xml = file_get_contents('path_to_file');
    try {
        $edex = EdexmlFactory::load($xml);
    } catch (ValidationException $exception) {
        // Handle exception
    }

    foreach ($edex->getGroepen()->getGroep() as $groep) {
        echo $groep->getNaam();
    }

    foreach ($edex->getLeerlingen() as $leerling) {
        echo $leerling->getGebruikersnaam();
    }

If the Edexml file contains elements with a type defined in a non-public XSD, you can strip the block before loading the XML.

    $xml = file_get_contents('path_to_file');
    try {
        $edex = EdexmlFactory::load(
            EdexmlFactory::stripToevoegingen($xml)
        );
    } catch (ValidationException $exception) {
        // Handle exception
    }

To skip validation, set strict to false

    $xml = file_get_contents('path_to_file');
    $edex = EdexmlFactory::load($xml, false);

Development

The library uses xsd2php for creating JMS Serializer definition files. These files are used to deserialize the XML into bite-sized PHP objects.

Generate classes

To generate new classed and JMS Serializer configuration based on the XSD files, run:

php vendor/bin/xsd2php convert config.yml src/Resources/xsd/*.xsd

This is only needed when the specification changes.