Как добавить настраиваемые помощники представления в Zend Framework 2

Ранее я задавал этот вопрос, и Там я получил хорошие ответы. Однако это было для beta4 и больше не работает.

Итак, где и как мне добавить в ZF2 свои собственные вспомогательные функции представления?


person Matsemann    schedule 09.07.2012    source источник


Ответы (2)


Вы должны добавить их в свой 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.

person Matsemann    schedule 09.07.2012

В бета5 была БК по поводу servicemanager. Это относится и к диспетчеру помощников представления. Взгляните здесь — там даже есть пример для помощников просмотра.

person Fge    schedule 09.07.2012
comment
Спасибо. Я знал о разрыве BC, но не мог узнать, как добавить помощников. Это было то, что мне нужно, чтобы заставить его работать. Вероятно, опубликую рабочий пример в качестве ответа для других. - person Matsemann; 09.07.2012