matraux/xml-orm

A PHP 8.4+ library for converting XML data to typed entities and back, with support for lazy-loading collections and XML namespaces.

Maintainers

Package info

github.com/matraux/xml-orm

pkg:composer/matraux/xml-orm

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

2.0.0 2025-11-27 12:32 UTC

This package is auto-updated.

Last update: 2026-03-16 11:42:42 UTC


README

Latest Version on Packagist Last release License: MIT PHP Security Policy Contributing QA Status Issues Last Commit


Introduction

A PHP 8.4+ library for converting XML data to typed entities and back, with support for lazy-loading collections, XML namespaces, and structured entity design. Useful for parsing configuration files, processing structured XML APIs, and working with hierarchical XML data in an object-oriented way.


Features

  • Object-oriented XML mapping
  • Conversion from XML to typed entities and back
  • Lazy-loading collections for efficient memory usage
  • Entity objects are mutable and can be freely modified after creation
  • Mapping via PHP attributes (no separate config files needed)
  • Strict type support with automatic casting
  • Native support for nested structures and arrays
  • Full support for XML namespaces
  • Easy integration with configuration files or XML-based APIs

Installation

composer require matraux/xml-orm

Requirements

version PHP Note
1.0.0 7.4+ Support PHP 7.4
2.0.0 8.3+ Support PHP 8.3
3.0.0 8.4+ Support PHP 8.4

Examples

See Definitions for how to define your own entities and collections.

See Read for full reading examples.

use Matraux\XmlOrm\Xml\SimpleExplorer;

$explorer = SimpleExplorer::fromString($xml);
$main = MainEntity::fromExplorer($explorer);
echo $main->name;

See Write for writing examples.

$main = MainEntity::create();
$main->name = 'Main entity';

echo $main;

Development

See Development for debug, test instructions, static analysis, and coding standards.


Support

For bug reports and feature requests, please use the issue tracker.