如何将自定义视图辅助对象添加到Zend Framework 2中


How to add custom view helpers to Zend Framework 2

我之前问过这个问题,得到了很好的答案。然而,这是针对beta4的,不再有效。

那么,在哪里以及如何将我自己的视图助手添加到ZF2中呢?

您应该将它们添加到view_helpers下的module.config.php中,如下所示:

'view_manager' => array(
    'template_path_stack' => array(
        'ModuleName' => __DIR__ . '/../view',
    ),
),
'view_helpers' => array(
    'factories' => array(
        'showmessages' => function($sm) {
            $helper = new ModuleName'Helper'MessageShower();
            // do stuff with $sm or the $helper
            return $helper;           
        },
    ),
    'invokables' => array(
        'selectmenu' => 'ModuleName'Helper'SelectMenu',   
        'prettyurl'  => 'ModuleName'Helper'PrettyUrl',
    ),  
),

在这里,我展示了创建辅助对象的两种方法。如果只需要实例化它们,只需将它们的名称(包括名称空间)添加为invokables即可。如果您需要使用它们或ServiceManager,请通过factories关键字创建它们。

beta5有一个关于servicemanager的BC。这也适用于视图助手管理器。看看这里——甚至还有一个视图辅助对象的例子。