2013-03-31 84 views
0

我無法將ZfcUser/ZfcBase模塊安裝到ZF2骨架應用程序中。 (Ubuntu的12.10服務器,阿帕奇,PHP5.4.6)無法在ZF2骨架應用程序中安裝ZfcUser/ZfcBase

1)下載並解壓縮ZF2骨架應用

2)下載和解壓ZF2庫到/供應商/ ZF2

此時,骨架應用程序正常工作

3)下載和解壓ZfcBase和ZfcUser入/供應商/(例如,這樣我有/vendor/ZfcXxxx/Module.php)

4)編輯配置/ application.config.php以包括兩個新的模塊

<?php 
return array(
    // This should be an array of module namespaces used in the application. 
    'modules' => array(
     'Application', 
     'ZfcBase', 
     'ZfcUser', 
    ), 

我現在得到

Fatal error: Uncaught exception 'Zend\ModuleManager\Exception\RuntimeException' with message 'Module (ZfcBase) could not be initialized.' in /home/ubuntu/zf2-skel/vendor/ZF2/library/Zend/ModuleManager/ModuleManager.php:144 
Stack trace: 
#0 /home/ubuntu/zf2-skel/vendor/ZF2/library/Zend/ModuleManager/ModuleManager.php(85): Zend\ModuleManager\ModuleManager->loadModule('ZfcBase') 
#1 [internal function]: Zend\ModuleManager\ModuleManager->onLoadModules(Object(Zend\ModuleManager\ModuleEvent)) 
#2 /home/ubuntu/zf2-skel/vendor/ZF2/library/Zend/EventManager/EventManager.php(464): call_user_func(Array, Object(Zend\ModuleManager\ModuleEvent)) 
#3 /home/ubuntu/zf2-skel/vendor/ZF2/library/Zend/EventManager/EventManager.php(208): Zend\EventManager\EventManager->triggerListeners('loadModules', Object(Zend\ModuleManager\ModuleEvent), NULL) 
#4 /home/ubuntu/zf2-skel/vendor/ZF2/library/Zend/ModuleManager/ModuleManager.php(104): Zend\EventManager\EventManager->trigger('loadModules', Object(Zend\ModuleManager\ModuleManager), Object(Zend\ModuleMan in /home/ubuntu/zf2-skel/vendor/ZF2/library/Zend/ModuleManager/ModuleManager.php on line 144 

大概我失去了一些自動加載配置...

回答

0

使用composer.phar非常有用。

php composer.phar self-update 
php composer.phar install 

無論如何檢查您的「autoload_classmap.php」並驗證添加ZfcBase。

0

我沒有使用作曲家(出於各種原因)。這個缺失的配置告訴應用程序加載模塊的autoload_classmap.php文件就是這樣。

Zend\Loader\AutoloaderFactory::factory([ 
    'Zend\Loader\StandardAutoloader' => [ 
     'autoregister_zf' => true 
    ], 
    'Zend\Loader\ClassMapAutoloader' => [ 
     __DIR__ . '/../vendor/ZfcBase/autoload_classmap.php', 
     __DIR__ . '/../vendor/ZfcUser/autoload_classmap.php', 
    ], 
]); 
+0

Composer創建它自己的'autoload_classmap',所以絕對不需要使用Modules提供的。作曲家爲您通過作曲家管理的所有模塊創建一個Classmap。 – Sam

+1

除了@Sam所說的之外,考慮你不應該考慮模塊的內部結構。相反,調整'config/application.config.php'中的'module_paths'選項,因爲模塊應該提供自己的自動加載 – Ocramius

+0

@ Sam/Ocramius。我不使用作曲家。你是說如果我想使用第三方模塊,那麼我必須使用作曲家?沒有(可接受)的方式來使用/配置沒有它的第三方模塊? – fisharebest

相關問題