Прослушиватель событий - это служба Symfony, поэтому вы можете просто передать параметр в качестве аргумента:
AppBundle\EventListener\ProductHandler:
arguments: [ "%my_parameter%" ]
tags:
- { name: doctrine.event_listener, event: prePersist }
…
Ваш конструктор получит параметр в качестве первого аргумента:
class ProductHandler
{
private $myParameter;
public function __construct(string $myParameter)
{
$this->myParameter = $myParameter;
}
}
Если вы используете автопроводку и уже внедряете другие сервисы в конструктор, вы можете использовать следующую запись:
AppBundle\EventListener\ProductHandler:
arguments: { $myParameter : "%my_parameter%" }
Таким образом, не имеет значения, является ли $myParameter
первым аргументом конструктора; вам просто нужно убедиться, что оно соответствует имени переменной.