Skip to content

refactor(container)!: split core responsibilities and add resolution engine#1

Open
mdalaminbey wants to merge 3 commits intomasterfrom
refactor
Open

refactor(container)!: split core responsibilities and add resolution engine#1
mdalaminbey wants to merge 3 commits intomasterfrom
refactor

Conversation

@mdalaminbey
Copy link
Member

Refactor Container to compose dedicated components:
Registry (bindings, aliases, tags),
ResolutionEngine (reflection-based autowiring and caching),
and CallbackInvoker (DI-aware callback and method invocation).

Introduce CircularDependencyException and extend
ContainerException and NotFoundException documentation.

Add new APIs including bind, singleton, alias, tag, tagged,
make, call, set, has, resolved_id, forget_instances, and flush.
Implement shared instance caching, alias resolution,
and circular dependency detection.

Include extensive unit and integration tests covering
deep dependency trees, interface and alias chaining,
variadic and nullable parameters, visibility handling,
and method invocation behavior.

BREAKING CHANGE: container internals and resolution flow
have been restructured and public APIs expanded/adjusted.

…engine

Refactor Container to compose dedicated components:
Registry (bindings, aliases, tags),
ResolutionEngine (reflection-based autowiring and caching),
and CallbackInvoker (DI-aware callback and method invocation).

Introduce CircularDependencyException and extend
ContainerException and NotFoundException documentation.

Add new APIs including bind, singleton, alias, tag, tagged,
make, call, set, has, resolved_id, forget_instances, and flush.
Implement shared instance caching, alias resolution,
and circular dependency detection.

Include extensive unit and integration tests covering
deep dependency trees, interface and alias chaining,
variadic and nullable parameters, visibility handling,
and method invocation behavior.

BREAKING CHANGE: container internals and resolution flow
have been restructured and public APIs expanded/adjusted.
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