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

我之前问过这个问题,我在那里得到了很好的答案.但是,这是针对 beta4 的,不再有效.

I have earlier asked this question, and I got good answers there. However, that was for beta4, and no longer works.

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

So where and how do I add my own view helpers to ZF2?

推荐答案

你应该像这样将它们添加到你的 module.config.php 下的 view_helpers 下:

You should add them to your module.config.php under view_helpers like this:

'view_manager' => array(
    'template_path_stack' => array(
        'ModuleName' => __DIR__ . '/../view',
    ),
),

'view_helpers' => array(
    'factories' => array(
        'showmessages' => function($sm) {
            $helper = new ModuleNameHelperMessageShower();
            // do stuff with $sm or the $helper
            return $helper;           
        },
    ),
    'invokables' => array(
        'selectmenu' => 'ModuleNameHelperSelectMenu',   
        'prettyurl'  => 'ModuleNameHelperPrettyUrl',
    ),  
),

这里我展示了两种创建助手的方法.如果它们只需要实例化,只需将它们的名称(包括命名空间)添加为 invokables.如果您需要对它们或 ServiceManager 进行处理,请通过 factories 关键字创建它们.

Here I show two ways of creating the helpers. If all they need to do is to be instantiated, just add their name (including namespace) as invokables. If you need to do stuff with them or the ServiceManager, create them through the factories keyword.

相关文章