Support self and parent types for Container - #310
Merged
Merged
Conversation
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The remaining feedback is a minor, non-blocking test-coverage suggestion.
Review effort: Lite
Findings: None
What changed in this PR
Adds support for resolving self and parent types in Container parameters, including union types.
Changes:
- Resolves relative types against the declaring class.
- Supports autowiring and configured container values.
- Adds factory and union-type test coverage.
| File | Summary |
|---|---|
tests/ContainerTest.php |
Adds coverage for relative and union type scenarios. |
src/Container.php |
Implements scoped self/parent type resolution. |
Review note: One minor, non-blocking suggestion remains to add constructor-specific coverage.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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.
This changeset adds support for
selfandparenttypes forContainerfactory functions and constructors. Previously, these types were treated as literal class names, so autowiring would throw anError(Class self not found) and a matching container variable would be rejected with aTypeError. They now resolve against the class the parameter is declared in, including as part of union types (PHP 8+):This includes new test cases covering
selfandparenttypes for autowiring and container variables. This has 100% code coverage and should be safe to apply.Builds on top of #307, #306, #303, #287, #286, #284, #182 and others