psx/model
PSX\Model is a lightweight PHP model and entity library from the PSX framework. It offers annotated model classes and DTOs, plus schema generation, hydration, and serialization helpers, letting you define typed, self-documenting data structures without a full ORM.
Adopt (or evaluate) only when most of these are true:
Look elsewhere when:
spatie/laravel-data (or plain DTOs + symfony/serializer) covers validation, casting, and serialization with an actively maintained community and Laravel-native ergonomics.jane-php/json-schema, cebe/php-openapi, or openapi-generator fit that workflow better.To executives: This is a small, permissively licensed (Apache-2.0) PHP library that offers prebuilt data model classes aligned to open web standards. The license means no legal or cost barrier and full freedom to modify. The material risk is not legal — it is support: the project has negligible community adoption (single-digit stars, no downstream dependents) and is tightly bound to one niche PHP framework family. Translation: if we adopt it, we own it. I recommend against it as a strategic dependency; at most, treat it as a reference implementation for a spike.
To engineering: It's a model-layer package in the PSX family — model classes derived from open specifications. It is only worth pulling in if we're already committed to PSX/Fusio components that consume these types, or if we want a fast reference for spec-compliant payload shapes during a short investigation. Otherwise, we get equivalent or better outcomes from spatie/laravel-data for internal DTOs, or from code generation against our own OpenAPI spec. Plan on pinning the version and, if adopted, treating the vendor directory as forkable source, because upstream activity and issue response are unlikely to meet our SLA.
Recommendation: Do not adopt for production. Use only for a time-boxed evaluation spike, and record the finding in the architecture decision log so the same option isn't re-litigated next quarter.
How can I help you explore Laravel packages today?