Download the PHP package mleczek/xml without Composer
On this page you can find all versions of the php package mleczek/xml. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package xml
Convert PHP objects to XML
The goal of the this library is to provide an easy way to respond XML by REST API.
- Installation
- Basic concepts
- XML Body
- Array
- Elements
- Attributes
- String
- XmlElement
- XML Declaration
- Contributing
- License
Installation
Require this package with composer:
Basic concepts
Class may be converted to XML using Mleczek\Xml\XmlConverter which implements the __toString, outerXml and innerXml methods returning XML as string:
Library contains also the shorthand to cast objects to XML string using Mleczek\Xml\XmlConvertible trait (or helper functions):
Mleczek\Xml\XmlConvertible implements the toXml method (also available as a helper function) which returns the outer XML string (skipped <?xml version="1.0" encoding="UTF-8"?> part in examples for better readability):
By default root elements is <result>, you can change it calling toXmlAs method:
Above examples use Mleczek\Xml\StructureAnalyser class to determine the output XML structure, to get more control you can implement the Mleczek\Xml\Xmlable interface with xml method:
The XML body structure:
XML Body
This chapter describe the data which should by returned by the xml method.
XML Body can be implemented using 3 ways:
- Array - meta description
- String - plain XML string
- XmlElement
Array
The meta language which allow defining XML body, including:
- Elements
- Attributes
Elements
The basic example return self-closing root element:
You can add <name> node to the <dog> root using:
As you can see above if you define value equal full_name then XmlConverter will look for full_name property in the object (casted to string). If property stores other object or array then you can retrieve nested property/key using dot notation address.city (equals $this->address->city or $this->address['city']).
You can also define more elements, self-closing elements and constant values:
You can also merge arrays (without using PHP functions) and use conditional output:
Attributes
Attributes works like the elements, the only difference is that you have to prepend the name with "@" prefix.
Of course you can mix elements with attributes:
String
Build and return plain XML string:
XmlElement
Not recommended and not documented. See source code for more information.
XML Declaration
Using toXml method provided with Mleczek\Xml\XmlConvertible trait (or equivalent helper functions) automatically add XML declaration:
Above declaration is available as constant value at Mleczek\Xml\XmlElement::XmlDeclaration.
Contributing
Thank you for considering contributing! If you would like to fix a bug or propose a new feature, you can submit a Pull Request.
License
The library is licensed under the MIT license.