我在注册工厂时遇到问题,导致奇怪的行为。
当我的依赖被工厂函数解决时,我可以看到(通过测试..),实际上只调用了构造函数,仅此而已。
这是工厂函数 + DI 定义:
AuthStrategySelectorInterface::class => function (ContainerInterface $container): AuthStrategySelector {
$authStrategySelector = new AuthStrategySelector();
$authStrategySelector
->register($container->get(JwtAuthStrategy::class));
return $authStrategySelector;
}
这是我可以看到的行为,但我不明白:似乎register
-function 永远不会被调用。我还通过die('test');
在$authStrategySelector
.
我在日志等中看不到任何错误,并且我在大约 2 小时后就解决了这个问题。
我测试了所有其他涉及的组件,例如 AuthStrategy,它甚至是空的,无法进行测试。