Guzzle XML
Guzzle XML request and response., (*1)
Contents
-
Compatibility
- Version support
-
Installation
- Composer
-
Usage
- Request options
- Response
- Author
- License
Compatibility
Library |
Version |
PHP |
>=7.2.5 |
Guzzle |
>=7.0 and < 8.0 |
Symfony Serializer |
>=5.0 and < 6.0 |
Version support
Guzzle |
PHP |
Repo |
6.x |
>=5.5 |
0.x |
7.x |
>=7.2 |
1.x |
Installation
Composer
composer require tarkhov/guzzle-xml
Usage
Request options
Following example creates POST request with XML body. Option xml
accepts an array that is converted to XML document. About array format and how converting works you can read in detail Symfony XmlEncoder., (*2)
push(XmlMiddleware::xml(), 'xml');
$client = new Client(['handler' => $stack]);
$response = $client->post('https://example.com', [
'xml' => [
'package' => [
'@language' => 'PHP',
'name' => 'Guzzle XML',
'author' => [
'@role' => 'developer',
'#' => 'Alexander Tarkhov',
],
'support' => [
'issues' => 'https://github.com/tarkhov/guzzle-xml/issues',
'source' => 'https://github.com/tarkhov/guzzle-xml',
],
],
],
]);
```
As a result, an xml request will be sent with the header `Content-type: text/xml` and data with the following content:
```xml
<package language="PHP">
<name>Guzzle XML</name>
<author role="developer">Alexander Tarkhov</author>
<support>
<issues>https://github.com/tarkhov/guzzle-xml/issues</issues>
<source>https://github.com/tarkhov/guzzle-xml</source>
</support>
</package>
Response
Automatically convert your JSON response to XML using middleware., (*3)
push(XmlMiddleware::jsonToXml());
$client = new Client(['handler' => $stack]);
$response = $client->post('https://example.com');
$xml = $response->getBody();
echo $xml;
```
If you json response is:
```json
{
"package": {
"@language":"PHP",
"name":"Guzzle XML",
"author": {
"@role":"developer",
"#":"Alexander Tarkhov"
},
"support": {
"issues":"https:\/\/github.com\/tarkhov\/guzzle-xml\/issues",
"source":"https:\/\/github.com\/tarkhov\/guzzle-xml"
}
}
}
```
This will automatically convert to XML like this:
```xml
<package language="PHP">
<name>Guzzle XML</name>
<author role="developer">Alexander Tarkhov</author>
<support>
<issues>https://github.com/tarkhov/guzzle-xml/issues</issues>
<source>https://github.com/tarkhov/guzzle-xml</source>
</support>
</package>
Author
Alexander Tarkhov, (*4)
License
This project is licensed under the MIT License - see the LICENSE
file for details., (*5)