模块(ZfcUser)无法初始化

问题描述:

在我的应用程序安装ZfcBase和ZfcUser后,我得到的错误信息:模块(ZfcUser)无法初始化

'Module (ZfcUser) could not be initialized.' in Zend/ModuleManager/ModuleManager.php on line 140 

我在完全相同的方式和位置,ZfcBase加载正确安装ZfcBase和ZfcUser。

相关的代码在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 
      )); 
     } 

我将如何能够调试这个问题?

+1

您是如何安装ZfcUser的?我强烈建议使用'composer.phar'来完成它。 ModuleManagers代码稳定,用户方面的错误率为100%(没有冒犯^^)。可能是拼写错误,也可能是错误的路径,也可能是错误的加载顺序(先基地,然后用户) – Sam 2013-04-06 10:37:45

+0

现在使用的作曲家和作品。无需显式加载Base。可能是Doctrine或其他依赖项,我错过了手动安装。我反对作曲家,因为它应该在每个项目的基础上使用。但是现在我将它用于几个项目,我安装到一个公共供应商目录,并且所有项目共享作曲者自动载入文件。我怎样才能接受你的答案? – tihe 2013-04-08 08:03:25

+0

Upvote已经足够了;)您可以张贴您自己的最终解决方案作为答案并接受。 – Sam 2013-04-08 08:52:35

正如Sam在上述评论中所建议的那样,我使用Composer和ZfcUser进行了安装。不需要明确加载ZfcBase。这可能是教条或其他依赖,我错过了手动安装。我最初拒绝使用Composer,因为它应该在每个项目的基础上使用。但是现在我用它来安装到一个公共供应商目录的几个项目,并且所有项目共享相同的index.php,ini_autoload.php和Composer autoload.php文件。

我怀疑你是通过克隆Github仓库并创建一个git子模块来安装ZfcUser的。我遇到了克隆整个应用程序(例如新机器)的问题,而无需每次单独克隆每个子模块。否则我遇到了同样的错误。

正如其他人所说,使用作曲家,除非你有充分的理由不这样做。