【问题标题】:Zend2 Framework module could not be initializedZend2 框架模块无法初始化
【发布时间】:2014-04-30 23:19:11
【问题描述】:

我正在尝试安装 Zend2 框架模块以进行移动检测。模块称为移动检测。我按照该页面上的说明进行操作,因此我通过 git shell 从供应商目录中的第一个链接克隆了 Mobile-Detect 和整个项目。我在 application.config.php 文件中添加了“Neilime\MobileDetect”,它显示了这个错误:

Fatal error: Uncaught exception 'Zend\ModuleManager\Exception\RuntimeException' with message 'Module (Neilime\MobileDetect) could not be initialized.' in 
D:\xampp\htdocs\zend2test\vendor\zendframework\zendframework\library\Zend\ModuleManager\ModuleManager.php:144 Stack trace: #0 
D:\xampp\htdocs\zend2test\vendor\zendframework\zendframework\library\Zend\ModuleManager\ModuleManager.php(85): Zend\ModuleManager\ModuleManager->loadModule('Neilime\MobileD...') #1 
[internal function]: Zend\ModuleManager\ModuleManager->onLoadModules(Object(Zend\ModuleManager\ModuleEvent)) #2 
D:\xampp\htdocs\zend2test\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(464): call_user_func(Array, Object(Zend\ModuleManager\ModuleEvent)) #3 
D:\xampp\htdocs\zend2test\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(208): Zend\EventManager\EventManager->triggerListeners('loadModules', Object(Zend\ModuleManager\ModuleEvent), NULL) #4 
D:\xampp\htdocs\zend2test\vendor\zendframework\zendframework\libra in 
D:\xampp\htdocs\zend2test\vendor\zendframework\zendframework\library\Zend\ModuleManager\ModuleManager.php on line 144

【问题讨论】:

    标签: zend-framework2


    【解决方案1】:

    我建议改用文档中给出的 composer 安装方法。

    如果你真的想坚持使用 git clone,试试:

    git clone git@github.com:neilime/zf2-mobile-detect.git Neilime/MobileDetect
    

    取而代之的是从供应商文件夹,它应该将其克隆到正确的路径。

    【讨论】:

    • 感谢您的回答,这似乎有效。我现在将对其进行更多测试。
    • 你能澄清一下这到底是做什么的吗?这没有显示我描述的错误,但是当我尝试检索一个对象时,它给了我这个错误: Class 'Mobile_Detect' not found in D:\xampp\htdocs\zend2test\vendor\Neilime\MobileDetect\src\MobileDetect\factory\MobileDetectFactory .php 在第 10 行,好像我没有 Mobile_Detect.php 库
    • 对此有什么帮助吗? :)
    【解决方案2】:

    错误意味着找不到模块。这可能是一个自动加载问题。

    请参阅以下问题以了解如何添加正确的自动加载配置。 https://stackoverflow.com/a/14980942/902466

    在您的情况下,它将类似于 init_autoloader.php 中的以下编辑:

    Zend\Loader\AutoloaderFactory::factory(array(
        'Zend\Loader\StandardAutoloader' => array(
            'autoregister_zf' => true,
            'namespaces' => array(
                'Neilime\MobileDetect'   => __DIR__ . '/vendor/neilime/zf2-mobile-detect',
            ),
        ),
    ));
    

    编辑:使用 Composer 是最好的主意,因为它会为您创建自动加载配置。

    【讨论】:

      【解决方案3】:

      我遇到了类似的问题。修复是一个案例问题:

      确保您的 **M**odule.php 文件以大写 M 书写,否则可能找不到该文件。这花了我一天的时间来进行错误测试,所以我真的希望我能省去同样的麻烦!

      【讨论】:

        猜你喜欢
        • 2013-09-03
        • 2012-11-08
        • 2012-08-22
        • 2016-01-02
        • 1970-01-01
        • 1970-01-01
        • 2014-11-17
        • 2012-11-11
        • 2015-11-12
        相关资源
        最近更新 更多