milzer / infx
infx is a specific format using in Germany tourism industry.
Installs: 2 010
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/milzer/infx
Requires
- php: ^8.3.0
- illuminate/validation: ^11.37
- nesbot/carbon: ^3.8
Requires (Dev)
- laravel/pint: ^1.18.1
- mockery/mockery: ^1.6
- pestphp/pest: ^3.5.1
- pestphp/pest-plugin-type-coverage: ^3.1
- phpstan/phpstan: ^1.12.7
- rector/rector: ^1.2.8
- symfony/var-dumper: ^7.1.6
README
INFX Package for Travel Offers
A robust PHP library to generate, validate, and serialize INFX travel offer records according to version 1.0.5.
📌 What is INFX?
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.
⚙️ Features
- ✅ 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
📦 Installation
composer require milzer/infx
🚀 Quickstart
use 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 line
📁 Architecture
src/
├── 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.
🏗 Development
git clone git@github.com:milzer/infx.git
cd infx
composer install
./vendor/bin/phpunit
Coding standards are enforced via GitHub Actions CI (PHPUnit, PHP-CS-Fixer, PHPStan).
🤝 Contributing
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.
📞 Contact
milzer GmbH
Anna-Klöcker-Straße 25
52222 Stolberg (Rhld.)
Germany
🌐 milzer.de
📧 kontakt@milzer.de | ☎️ +49 2402 9066190