How to use a custom form view helper in Zend Framework 2?

forms, view-helpers, viewhelper, zend-framework2

Solution

Although Andrews answer works, it's not necessary, just use the default view helper name and map it to your helper class, the application will then use your helper instead

public function getViewHelperConfig() {
    return array(
        'invokables' => array(
            'formmulticheckbox' => 'MyNamespace\Form\View\Helper\FormMultiCheckbox',
        ),                
    );
}

Problem

I wrote a form view helper, that extends the `Zend\Form\View\Helper\FormMultiCheckbox` and overwrites its `renderOptions(...)` method: ``` <?php namespace MyNamespace\Form\View\Helper; use Zend\Form\View\Helper\FormMultiCheckbox as ZendFormMultiCheckbox; class FormMultiCheckbox extends ZendFormMultiCheckbox { protected function renderOptions(...) { ... $label = $escapeHtmlHelper($label); $labelOpen = $labelHelper->openTag($labelAttributes); switch ($labelPosition) { case self::LABEL_PREPEND: $template = $labelOpen . $label . $labelClose . '%s'; break; case self::LABEL_APPEND: default: $template = '%s' . $labelOpen . $label . $labelClose; break; } $markup = sprintf($template, $input); $combinedMarkup[] = $markup; ... } } ``` The next step is to register the new view helper. I'm doing this like here shown: ``` namespace Application; use Zend\Mvc\ModuleRouteListener; use Zend\Mvc\MvcEvent; class Module { ... public function getViewHelperConfig() { return array( 'invokables' => array( 'FormMultiCheckboxViewHelper' => 'MyNamespace\Form\View\Helper\FormMultiCheckbox', ) ); } } ``` Now my question: How can I make the application use my form view helper instead of `Zend\Form\View\Helper\FormMultiCheckbox`?

Original source