Вызов собственного плагина из помощника вида

Есть ли способ вызвать пользовательский плагин из View Helper в ZF3?

Согласно ZF3, Фабрика для Помощника создана мной.

В ZF2 это то, как мы называем плагин.

$ecommercePlugin = $this->getServiceLocator()
->get('ControllerPluginManager')
->get('CustomPlugin');

Как serviceLocator удаляется из ZF3, как вызвать плагин?

редактировать
module.config

'view_helpers' => array(
'invokables' => array(
'CustomPlugin' => \MyMethod\Controller\Plugin\CustomPlugin::class
)
),

MymethodController\CustomPlugin

class CustomPlugin extends AbstractPlugin
{
//My methods
}

0

Решение

Я бы порекомендовал зарегистрировать CustomPlugin с ViewHelperManager, Вы можете найти информацию о конфигурации в Руководство Zend. Это, как правило, как ваш модуль module.config.php может выглядеть:

<?php
return [
'controller_plugins' => [
'invokables' => [
'CustomPlugin' => \MyMethod\Controller\Plugin\CustomPlugin::class
],
],
];

Чтобы зарегистрировать его для использования в качестве помощника вида, вы должны добавить:

<?php
return [
'controller_plugins' => [
'invokables' => [
'CustomPlugin' => \MyMethod\Controller\Plugin\CustomPlugin::class
],
],
'view_helpers' => [
'invokables' => [
'CustomPlugin' => \MyMethod\Controller\Plugin\CustomPlugin::class
]
],
];

Этот новый конфиг позволит вам позвонить $this->CustomPlugin() как от контроллеров, так и от взглядов. Теперь вы можете столкнуться с ситуацией, когда вам нужно внедрить зависимости в ваш плагин / помощник вида. В этом случае вы можете просто создать фабричный класс для обработки поиска и внедрения зависимостей и изменить конфигурацию на:

<?php
return [
'controller_plugins' => [
'factories' => [
'CustomPlugin' => \MyMethod\Controller\Plugin\CustomPlugin::class
],
],
'view_helpers' => [
'factories' => [
'CustomPlugin' => \MyMethod\Controller\Plugin\CustomPlugin::class
]
],
];

Теперь, когда вызывается вспомогательный модуль представления / плагина, фабрика запускается и собирает нужный класс. Дайте знать, если у вас появятся вопросы. Существует много гибкости в конфигурации и с конкретными требованиями или примером CustomPlugin класс и твой Module.php/module.config.php config может предоставить более точный пример того, что вы ищете.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]