在我的应用程序中安装ZfcBase和ZfcUser后,我收到错误消息:
'Module (ZfcUser) could not be initialized.' in Zend/ModuleManager/ModuleManager.php on line 140
我以完全相同的方式和位置安装了ZfcBase和ZfcUser,并正确加载了ZfcBase。
ModuleManager.php中的相关代码是:
/**
* Load a specific module by name.
*
* @param string $moduleName
* @throws Exception\RuntimeException
* @triggers loadModule.resolve
* @triggers loadModule
* @return mixed Module's Module class
*/
public function loadModule($moduleName)
{
if (isset($this->loadedModules[$moduleName])) {
return $this->loadedModules[$moduleName];
}
$event = ($this->loadFinished === false) ? clone $this->getEvent() : $this->getEvent();
$event->setModuleName($moduleName);
$this->loadFinished = false;
$result = $this->getEventManager()->trigger(ModuleEvent::EVENT_LOAD_MODULE_RESOLVE, $this, $event, function ($r) {
return (is_object($r));
});
$module = $result->last();
if (!is_object($module)) {
throw new Exception\RuntimeException(sprintf(
'Module (%s) could not be initialized.',
$moduleName
));
}
我如何调试此问题?
答案 0 :(得分:1)
我怀疑你通过克隆Github repo并创建一个git子模块来安装ZfcUser。我遇到了克隆我的整个应用程序(例如新机器)的问题,而不是每次都单独克隆每个子模块。我遇到了同样的错误。
正如其他人所说,除非你有充分的理由不这样做,否则请使用作曲家。
答案 1 :(得分:0)
正如Sam在上面的评论中所建议的那样,我安装了Composer和ZfcUser工作正常。甚至不需要显式加载ZfcBase。我错过了手动安装可能是Doctrine或其他依赖。我最初拒绝使用Composer,因为它应该在每个项目的基础上使用。但现在我将它用于几个项目,我安装到一个公共供应商目录,所有项目共享相同的index.php,ini_autoload.php和Composer autoload.php文件。