我正在研究Zend框架,我已经设置了所有内容但是在单元测试中我得到了一个致命的错误:
C:\ XAMPP \ htdocs中\ Zend的\模块\相册\试验>的PHPUnit PHP Catchable致命错误:传递给Zend \ ServiceManager \ ServiceManager :: __ construct()的Arugment 1必须是类型数组,给定对象,在C:\ xampp \ htdocs \ zend \ module \ Album \ test \ Bootstrap.php中调用第53行并在第144行的c:\ xampp \ htdocs \ zend \ vendorframework \ zend-servicemanager \ src \ ServiceManager.php中定义
Bootstrap.php第52-58行:
$config = ArrayUtils::merge($baseConfig, $testConfig);
$serviceManager = new ServiceManager(new ServiceManagerConfig());
$serviceManager->setService('ApplicationConfig', $config);
$serviceManager->get('ModuleManager')->loadModules();
static::$serviceManager = $serviceManager;
static::$config = $config;
ServiceManager.php第144-148行:
public function __construct(array $config = [])
{
$this->creationContext = $this;
$this->configure($config = []);
}
请一些建议???
答案 0 :(得分:1)
$serviceManager = new ServiceManager(new ServiceManagerConfig());
传递给Zend \ ServiceManager \ ServiceManager :: __ construct()的Arugment 1必须是类型数组,给定对象
错误告诉您ServiceManager
期望数组作为参数。您传递的参数是new ServiceManagerConfig()
,它是一个对象。
这是版本不匹配。
在zendframework/zend-servicemanager
~2.0
中,ServiceManager
构造函数需要一个对象。
在zendframework/zend-servicemanager
~3.0
中,ServiceManager
构造函数需要一个数组。
如果您使用的是zf skeleton application,请确保使用的是正确的版本。