如何向Zend Framework 2添加自定义视图助手

5

我之前曾经提出过这个问题,并且在那里得到了很好的答案。 然而,那是针对beta4版本的,现在已经不再有效。

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

2个回答

17

你应该将它们添加到你的module.config.php文件中的view_helpers中,像这样:

'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关键字创建它们。


1
beta5版本在servicemanager方面存在一个BC问题。这同样适用于视图助手管理器。请看这里 - 下面甚至有一个视图助手的示例。

谢谢。我知道有关 BC 拆分的事情,但是找不到如何添加 helpers。这正是我需要让它工作的东西。可能会发布一个工作示例作为答案供其他人参考。 - Matsemann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接