Skip to content

Add #[BindsFrom] attribute and convert BindUtils to DI service#31

Merged
wtorsi merged 4 commits intomasterfrom
8.0
Feb 25, 2026
Merged

Add #[BindsFrom] attribute and convert BindUtils to DI service#31
wtorsi merged 4 commits intomasterfrom
8.0

Conversation

@wtorsi
Copy link
Contributor

@wtorsi wtorsi commented Feb 24, 2026

Summary

  • Introduce #[BindsFrom] attribute for BindView subclasses to declare source classes, enabling targeted cache warming instead of N² pairs
  • Convert BindUtils from singleton with static state to a proper DI service with instance properties and public constructor
  • Add BindView::setBindUtils() static bridge for DI integration with fallback to standalone usage
  • Simplify SetVersionSubscriber to inject BindUtils directly
  • Deduplicate type validation by extracting shared static methods from BindUtils, fixing missing isAutoConfigurableType() check in cache warmer
  • Convert ReflectionService from static to instance storage
  • Remove all reflection-based test state resets

Test plan

  • All 93 unit + integration tests pass (composer test)
  • PHPStan static analysis passes (composer analyse)
  • Code style check passes (composer cs-check)
  • All 10 benchmark subjects run without error (composer bench)

🤖 Generated with Claude Code

wtorsi and others added 2 commits February 21, 2026 20:18
…vice

- Introduce #[BindsFrom] attribute for BindView subclasses to declare
  source classes, enabling targeted cache warming instead of N² pairs
- Convert BindUtils from singleton with static state to a proper DI
  service with instance properties and public constructor
- Add BindView::setBindUtils() static bridge for DI integration with
  fallback to standalone usage
- Simplify SetVersionSubscriber to inject BindUtils directly
- Deduplicate type validation by extracting shared static methods from
  BindUtils, fixing missing isAutoConfigurableType() check in cache warmer
- Convert ReflectionService from static to instance storage
- Remove all reflection-based test state resets

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@wtorsi
Copy link
Contributor Author

wtorsi commented Feb 25, 2026

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

🤖 Generated with Claude Code

Dev and others added 2 commits February 25, 2026 22:02
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@wtorsi wtorsi merged commit 189c965 into master Feb 25, 2026
1 check passed
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