A robust PHP library to generate, validate, and serialize INFX travel offer records according to version 1.0.5.
INFX is a fixed width, field based text format widely used in the tourism industry to transmit structured travel offers—covering package tours, flight only deals, and round trips. This library encapsulates the full spec, offering modular, validated, trait based field assembly.
- ✅ Full coverage of INFX v1.0.5 spec
- ⚙️ Modular traits and PHP 8 attributes for fields
- 🧬 Handles complex data: pricing tiers, occupancy, flights
- 🔄 Exclusive string → INFX export pipeline
- 🛡 Central validation via
ValidatorHelper
composer require milzer/infxuse milzer\Infx\Entities\Line;
$line = (new Line())
->setOfferNumber('ABC1234567')
->setPartner('SAT')
->setDepartureDate('2025-07-21')
->setReturnDate('2025-07-28')
->setDepartureAirportOutbound('FRA')
->setArrivalAirportOutbound('PMI')
->setCurrency('EUR')
->setPrice('1199.00')
->setHotelName('Club Palma')
->setBoardCode('HP')
->setOccupancy(2);
echo $line; // Outputs fixed-width INFX linesrc/
├── Attributes/Field.php # Field position/type metadata
├── Entities/Line.php # Main offer entity
├── Traits/…/HasXYZ.php # Modular field traits
└── Helpers/ValidatorHelper.php # Central validation logic
Each Line represents a full offer. Fields are trait-composed; central validator ensures consistency.
git clone git@github.com:milzer/infx.git
cd infx
composer install
./vendor/bin/phpunitCoding standards are enforced via GitHub Actions CI (PHPUnit, PHP-CS-Fixer, PHPStan).
We welcome bug reports, feature requests, and PRs!
Please open an issue to discuss larger changes.
All contributions require completing our CLA.
Refer to CONTRIBUTING.md for details.
milzer GmbH
Anna-Klöcker-Straße 25
52222 Stolberg (Rhld.)
Germany
🌐 milzer.de
📧 kontakt@milzer.de | ☎️ +49 2402 9066190