Skip to content

feat(container): 新增构造器注入 make() - #4

Merged
JanHuang merged 1 commit into
masterfrom
feat/container-make
Oct 26, 2026
Merged

JanHuang merged 1 commit into
masterfrom
feat/container-make

Conversation

@JanHuang

Copy link
Copy Markdown
Member

变更

新增 Container::make() 构造器注入:

$controller = $container->make(UserController::class);

支持:

  • 构造参数类型递归解析;
  • 已注册服务/接口绑定;
  • 默认值与 nullable 参数;
  • 循环依赖检测并输出依赖链。

不包含 scoped():在 FastD 还没有请求级生命周期集成前,它容易成为没有实际调用方的假抽象,后续单独设计。

验证

  • container 全量:23 tests / 55 assertions ✅
  • 覆盖:DI、接口绑定、循环依赖。

后续

make() 要真正发挥作用,下一步需要在 RouteMatcher / RouteMiddleware 增加 resolver,并由 FastD Application 注入容器 resolver;该集成单独跟进。

本 PR 不发版本。

- Container::make() 按构造参数类型递归解析依赖
- 支持已注册服务、接口绑定、默认值与 nullable 参数
- 检测循环依赖并提示依赖链
- 新增 DI / 接口绑定 / 循环依赖测试
@JanHuang
JanHuang merged commit 3c0927c into master Oct 26, 2026
1 of 2 checks passed
@JanHuang
JanHuang deleted the feat/container-make branch October 26, 2026 16:07
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