在某些情况下,我会通过它们的完整类名从 ServiceManager 中检索实例,例如:
$someThing = $serviceManager->get('MyModule\Some\Nice\Lib\SomeThing');
这对于 HTTP MVC 请求非常有效,但是,当使用 phpunit 时,ServiceManager 找不到它。(它会抛出Zend\ServiceManager\Exception\ServiceNotFoundException
异常消息“Zend\ServiceManager\ServiceManager::get
无法获取或创建...的实例”)
我正在使用文档中的默认测试引导示例,并且我在不同机器上的两个不同项目中遇到了这个问题,所以我想这是一个普遍的问题。
我的第一个猜测是它与 MVC 或应用程序有关,因为这很可能是测试和 http 之间唯一真正的区别。我什至在两种模式下都转储了 SM 实例并将它们相互比较,查看源代码并搜索网络。
不幸的是,由于我的劳动合同,我无法粘贴任何代码。但是,正如我所说,我认为这是一个普遍问题,因此您应该能够轻松地重现它。
有谁知道是什么导致了这个问题以及如何解决它?