如何在Zend Framework 2中替换RoutePluginManager中的可调用类?

时间:2013-10-12 23:01:39

标签: zend-framework2 zend-route

我已经编写了一个自定义Part类(MyNamespace\Mvc\Router\Http\Part),现在将替代Zend\Mvc\Router\Http\Part使用。如何将其加载到Zend\Mvc\Router\RoutePluginManager

的invokable列表中

enter image description here

-

编辑:

刚试过

namespace Application;

use Zend\Mvc\MvcEvent;

class Module {
    ...
    public function onBootstrap(MvcEvent $mvcEvent) {
        ...
        $routePluginManager = $mvcEvent->getRouter()->getRoutePluginManager();
        $routePluginManager->setInvokableClass('part', 'MyWorkspace\Mvc\Router\Http\Part');
        ...
    }
    ...
}

但它不起作用 - 仍然使用标准的Zend类。

1 个答案:

答案 0 :(得分:1)

让你的Module类实现Zend\ModuleManager\Feature\RouteProviderInterface并声明它需要的getRouteConfig方法

<?php
namespace Application;

use Zend\ModuleManager\Feature;

class Module implements Feature\RouteProviderInterface
{

    public function getRouteConfig()
    {
        return array(
            'invokables' => array(
                 'part' => 'ITT\Mvc\Router\Http\Part',
            ),
        );
    }

 }

或者,将其添加到module.config.php密钥

下的route_manager文件中
 return array(

     'route_manager' => array(
         'invokables' => array(
             'part' => 'ITT\Mvc\Router\Http\Part',
          ),
      ),

  );