Stormware's Pohoda XML/PHP serializer.
This library provides a PHP-based solution for serializing and deserializing XML data for Stormware's Pohoda accounting software. It is designed to work with Pohoda's XML schema definitions (XSD) and simplifies the process of integrating Pohoda's data exchange into your PHP applications.
- XML Serialization: Convert PHP objects into Pohoda-compatible XML.
- XML Deserialization: Parse Pohoda XML files into PHP objects.
- XSD Integration: Automatically maps XML schema definitions to PHP classes.
- Customizable: Extend and modify the library to fit your specific Pohoda integration needs.
- PHP 8.1 or higher
- Composer
- JMS Serializer
- GoetasWebservices XSD2PHP
Install the library using Composer:
composer require vitexsoftware/pohodaser
XSD Taken from https://www.stormware.cz/xml/schema/all_schema_ver2.zip
use Pohoda\Invoice\Invoice;
use Pohoda\XML\SerializerBuilder;
// Create an instance of the serializer
$serializer = SerializerBuilder::create()->build();
// Create an invoice object
$invoice = new InvoiceType();
$invoice->setId(123);
$invoice->setName('Sample Invoice');
// Serialize the object to XML
$xmlContent = $serializer->serialize($invoice, 'xml');
echo $xmlContent;
use Pohoda\Invoice\InvoiceType;
use Pohoda\XML\SerializerBuilder;
// Create an instance of the serializer
$serializer = SerializerBuilder::create()->build();
// Load XML content
$xmlContent = file_get_contents('path/to/invoice.xml');
// Deserialize the XML into a PHP object
$invoice = $serializer->deserialize($xmlContent, InvoiceType::class, 'xml');
print_r($invoice);
use Pohoda\Xml\Helper;
use Pohoda\XML\SerializerBuilder;
$serializer = SerializerBuilder::create()->build();
$xmlContent = file_get_contents('path/to/faktury_03_v2.0.xml');
// Detect the PHP class name from the XML
$phpClassName = Helper::xml2ns($xmlContent);
if ($phpClassName) {
$object = $serializer->deserialize($xmlContent, $phpClassName, 'xml');
print_r($object);
} else {
echo "Namespace not found for the root element.\n";
}