intermedia/ksef-fa3

PHP models for KSeF FA(3) with XML serializer and XSD validator

v1.0.1 2025-10-03 19:55 UTC

This package is auto-updated.

Last update: 2025-10-03 20:03:30 UTC


README

Biblioteka generowana na podstawie schematów XSD systemu KSeF FA(3).
Zawiera komplet modeli PHP, enumów, serializer XML oraz walidator zgodny z XSD.

Zawartość

  • src/Model/* – klasy PHP odwzorowujące struktury z XSD (np. FakturaType, Podmiot1Type, FaType, FaWierszType, StopkaType).
  • src/Enums/* – typy wyliczeniowe (np. kody krajów, waluty, formy płatności).
  • src/Serializer/XmlSerializer.php – serializer obiektów PHP → XML zgodny ze schematem.
  • src/Validator/XmlValidator.php – walidator dokumentów XML względem XSD.
  • schema/*.xsd – schematy użyte do generacji.

Instalacja

composer require intermedia/ksef-fa3

Przykład użycia

<?php
require __DIR__.'/vendor/autoload.php';

use Intermedia\Ksef\Fa3\Model\FakturaType;
use Intermedia\Ksef\Fa3\Model\TNaglowek;
use Intermedia\Ksef\Fa3\Model\Podmiot1Type;
use Intermedia\Ksef\Fa3\Model\FaType;
use Intermedia\Ksef\Fa3\Model\FaWierszType;
use Intermedia\Ksef\Fa3\Serializer\XmlSerializer;
use Intermedia\Ksef\Fa3\Validator\XmlValidator;

// Tworzenie faktury
$faktura = new FakturaType();
$faktura->naglowek = new TNaglowek();
$faktura->podmiot1 = new Podmiot1Type();

$pozycja = new FaWierszType();
$fa = new FaType();
$fa->faWiersz = [$pozycja];
$faktura->fa = $fa;

// Serializacja do XML
$serializer = new XmlSerializer();
$doc = $serializer->createDocument('Faktura', $faktura);
echo $doc->saveXML();

// Walidacja względem XSD
$validator = new XmlValidator(__DIR__.'/vendor/intermedia/ksef/fa3/schema/FA3.xsd');
$result = $validator->validate($doc);

if ($result->isValid) {
    echo "Dokument jest poprawny względem XSD.";
} else {
    foreach ($result->errors as $error) {
        echo $error->message, PHP_EOL;
    }
}

Typy i właściwości

  • Każda klasa ma statyczną metodę schema(), która odwzorowuje definicję z XSD.
  • Wszystkie właściwości mają PHPDoc (@var) z typem oraz opisem z dokumentacji XSD – dzięki temu IDE (PHPStorm, VSCode) podpowiada pola i opisy.

Licencja

MIT