Zend Framework 2自定义视图助手 - 交叉模块

时间:2013-01-07 17:46:57

标签: view frameworks zend-framework2 helpers

在Zend Framework 2中,如何为多个模块提供一个视图助手?

我想要的是有一些通用功能,比如算法功能,可以被多个模块重用。

我目前正在使用ZF 2 2.0.3

感谢。

2 个答案:

答案 0 :(得分:2)

简单,把它放在你的一个模块中。您可以使用ZF2中其他模块的类和函数。因为ZF2中的模块不仅仅是名称空间,而是包含一些类。因此,如果您创建名为\Module\View\Helper\MyHelper的视图助手,则可以在另一个模块中使用该视图助手。

答案 1 :(得分:2)

除了kokx所说的内容之外,您还需要为视图助手管理器添加服务管理器配置。这可以通过以下两种方式之一完成:在模块配置中,或在Module类中。

// module configuration:
return array(
    'view_helpers' => array(
        'invokables' => array(
            'dimmy' => 'DimmyUtil\View\Helper\DimmyUtil',
        ),
    ),
);

或者,在Module类中:

namespace DimmyUtil;

class Module
{
     public function getViewHelperConfig()
     {
         return array('factories' => array(
             'dimmy' => function ($helpers) {
                  // do some stuff...
                  return $helper;
             }
         ));
     }
}

执行此操作后,视图助手将在组成模块的任何应用程序中可用。