2015-09-22 2 views
0

начал с новым проектом ZF2 получить следующее сообщение об ошибкеРеализовать ModuleManagerInterface

Аргумента 1 передаются ZendDeveloperTools \ Module :: Init() должен быть реализован интерфейсом Zend \ ModuleManager \ ModuleManagerInterface, нуль дал, называемому в/поставщике/ZendFramework/Зенд-ModuleManager/SRC/Слушатель/InitTrigger.php на линии 33 и определены в /vendor/zendframework/zend-developer-tools/src/ZendDeveloperTools/Module.php на линии 34

Это не вопрос, какой модуль первый в application.config.php. Я всегда получал эту ошибку.

+0

Если вы не загружаете ZendDeveloperTools, все работает нормально? – Pradeep

+0

Нет, не важно, какой модуль является первым ... – cwhisperer

ответ

0

Это мой файл Module.php. Ошибка говорит, что вам необходимо передать ModuleManagerInterface в качестве первого параметра в вашем методе init. Этот метод init имеет интерфейс. Посмотрите файлы Zend\ModuleManager\Feature\*Interface.php, и вы увидите вашу ошибку.

namespace Application; 

use Zend\Mvc\MvcEvent; 
use Zend\EventManager\EventInterface; 
use Zend\ModuleManager\Feature\AutoloaderProviderInterface; 
use Zend\ModuleManager\Feature\ConfigProviderInterface; 
use Zend\ModuleManager\Feature\BootstrapListenerInterface; 
use Zend\ModuleManager\Feature\InitProviderInterface; 
use Zend\ModuleManager\ModuleManagerInterface; 

class Module implements AutoloaderProviderInterface, ConfigProviderInterface, BootstrapListenerInterface, InitProviderInterface 
{ 
    /** 
    * Setup module layout 
    * 
    * @param $moduleManager ModuleManager 
    */ 
    public function init(ModuleManagerInterface $moduleManager) 
    { 
     $moduleManager->getEventManager()->getSharedManager()->attach(__NAMESPACE__, MvcEvent::EVENT_DISPATCH, function (MvcEvent $e) { 
      $e->getTarget()->layout('layout/layout'); 
     }); 
    } 

    /** 
    * Listen to the bootstrap event 
    * 
    * @param EventInterface $e 
    */ 
    public function onBootstrap(EventInterface $e) 
    { 
    } 

    /** 
    * @return array|\Traversable 
    */ 
    public function getConfig() 
    { 
     return include __DIR__.'/config/module.config.php'; 
    } 

    /** 
    * Return an array for passing to Zend\Loader\AutoloaderFactory. 
    * 
    * @return array 
    */ 
    public function getAutoloaderConfig() 
    { 
     return [ 
      'Zend\Loader\ClassMapAutoloader' => [ 
       __DIR__.'/autoload_classmap.php', 
      ], 
      'Zend\Loader\StandardAutoloader' => [ 
       'namespaces' => [ 
        __NAMESPACE__ => __DIR__.'/src/'.__NAMESPACE__, 
       ], 
      ], 
     ]; 
    } 
} 
Смежные вопросы