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.