Develop#4
Merged
Merged
Conversation
- 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
…ape='\\' to str_getcsv (PHP 8.4)
… update README — ARFA 1.3 V4.0
…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)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.