Skip to content

Develop#4

Merged
walmir-silva merged 14 commits into
mainfrom
develop
Mar 5, 2026
Merged

Develop#4
walmir-silva merged 14 commits into
mainfrom
develop

Conversation

@walmir-silva

Copy link
Copy Markdown
Contributor

No description provided.

- TransformerEngine with composable transformation pipeline
- AttributeTransformer: #[Transform] attribute-driven field transformation
- TransformationContextImpl: immutable fluent builder (readonly)
- 32 built-in rules across String, Data, Numeric, Date, Structure,
  Brazilian, and Encoding rule groups
- TransformerConfiguration with trackTransformations, allowNullOverwrite
- 66 tests: AttributeTransformer, TransformerEngine, all 32 rule classes
- Conformance: ImmutableStateTest, ArchitecturalContractTest
- PHPUnit 12 compatible attribute-based annotations
- TransformerServiceProvider: replace 'use ...\String' with 7 individual
  class imports (String is a reserved PHP class name)
- Apply psalm --alter #[Override] on all interface implementations
- Rename QualityDirectiveV40Test → ArchitecturalContractTest

All changes verified: kcode test passes (66 tests, no failures)
- Adds kariricode/property-inspector v2.0.0 from Packagist to require block
- Provides PropertyInspector, AttributeAnalyzer, and PropertyAccessor
- Enables reflection metadata caching per class (no re-inspection on repeated calls)
- Replaces zero-dependency design with a single dependency on the framework's
  canonical attribute-inspection library
- New TransformAttributeHandler: implements PropertyAttributeHandler +
  PropertyChangeApplier; collects #[Transform] rules per property
- AttributeTransformer: replaces raw ReflectionClass loop with
  PropertyInspector::inspect() + TransformAttributeHandler
- PropertyAccessor used for writing transformed values back to objects
- Gains reflection metadata cache from AttributeAnalyzer

kcode test: 66 tests, 0 failures
… add Patch phpunit.xml.dist steps, fix multi-line shell escaping
…s, 47/47 classes

- Add TransformAttributeHandlerTest (12 tests, covers Transform, TransformerConfiguration, TransformationException)
- Add EventsAndIntegrationTest (5 tests, covers TransformationStartedEvent, TransformationCompletedEvent, ProcessorBridge)
- Expand TransformerEngineTest with CoversClass + 3 new edge-case tests (dot-notation missing key, inline rule object, tuple form)
- Expand DateRulesTest with CoversClass + 11 new tests (just now, future, hours, months, years, bad timezone, invalid format, empty string)
- Expand DataRulesTest with CoversClass + 3 new tests (empty CSV, non-string passthrough, getName)
- Add CoversClass + #[Test] to 12 existing test files via batch script
- Fix CoversClass FQCN resolution (absolute backslash prefix for PHP namespace resolution)

Coverage: Classes 100.00% (47/47), Methods 100.00% (118/118), Lines 100.00% (401/401)
@walmir-silva walmir-silva merged commit 6eb723f into main Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant