Skip to content

Adds immutable DTOs, trait-based architecture, and PHP 8.5 support#7

Merged
yordadev merged 5 commits into
mainfrom
feat/immutable-dto-traits-refactor
Feb 28, 2026
Merged

Adds immutable DTOs, trait-based architecture, and PHP 8.5 support#7
yordadev merged 5 commits into
mainfrom
feat/immutable-dto-traits-refactor

Conversation

@yordadev

Copy link
Copy Markdown
Member
  • Refactor ArgonautDTO internals into reusable traits (HasCasting, HasSerialization, HasValidation)
  • Adds ArgonautImmutableDTO base class with readonly property support via reflection
  • Adds BackedEnum casting support for single properties, arrays, and collections
  • Adds only(), except(), and merge() serialization helpers
  • Adds PHP 8.5 to CI matrix and PHPStan (level 5) to the pipeline
  • Bumps actions/checkout from v2 to v4

- Consolidate three separate hardcoded internal property lists into a single source of truth via getExcludedSerializationProperties(). This fixes getAttributesToUpdate() missing the validatorFactory exclusion.

- Add BackedEnum casting test coverage for ArgonautImmutableDTO and a public API surface regression test for both DTO classes.
@yordadev yordadev self-assigned this Feb 27, 2026
@yordadev yordadev added documentation Improvements or additions to documentation enhancement New feature or request labels Feb 27, 2026
@yordadev yordadev merged commit 8b4f36d into main Feb 28, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant