简体   繁体   中英

How to add custom view helpers to Zend Framework 2

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

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

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 ModuleName\Helper\MessageShower();
            // do stuff with $sm or the $helper
            return $helper;           
        },
    ),
    'invokables' => array(
        'selectmenu' => 'ModuleName\Helper\SelectMenu',   
        'prettyurl'  => 'ModuleName\Helper\PrettyUrl',
    ),  
),

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.

The beta5 had a BC regarding the servicemanager. This applies for the view helper manager as well. Have a look here - there's even an example for view helpers a bit down too.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM