Похоже, вам нужен слушатель для этого.Что-то вроде этого может удовлетворить ваши потребности:
<?php
namespace Authentication\Listener;
use Zend\EventManager\EventManagerInterface;
use Zend\EventManager\ListenerAggregateInterface;
use Zend\Mvc\MvcEvent;
class addFieldListener implements ListenerAggregateInterface
{
//@todo add annotations
protected $logger;
/**
* @var array
*/
protected $listeners = [];
// @todo strict type
public function __construct($logger)
{
$this->setLogger($logger);
}
//You might have to change the priority, which is currently 1,
public function attach(EventManagerInterface $events, $priority = 1)
{
$this->listeners[] = $events->attach(MvcEvent::EVENT_ROUTE, [$this, 'addField'], $priority);
}
public function detach(EventManagerInterface $events)
{
foreach ($this->listeners as $index => $listener) {
if ($events->detach($listener)) {
unset($this->listeners[$index]);
}
}
}
public function addField()
{
//Get logger and add field.
}
//Getters & setters.. ?
}
Config: module.config.php
<?php
use Authentication\Listener\addFieldListener;
return [
'listeners' => [
addFieldListener::class,
],
'service_manager' => [
'factories' => [
addFieldListener::class => addFieldListenerFactory::class,
],
],
];
Примечание: Убедитесь, что фабрика предоставляет регистратор слушателю.