Вы должны создать объект EventDispatcher перед его использованием:
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
....
public function registerAction(..., EventDispatcherInterface $eventDispatcher)
{
$event = new GenericEvent($user);
$eventDispatcher->dispatch(Events::USER_REGISTERED, $event);
}
РЕДАКТИРОВАТЬ : xabbuh прав.Мой блок кода предполагал, что вы добавили своих слушателей регистрации в диспетчер.Действительно, это предотвращает разделение, которое пытается обеспечить компонент EventDispatcher.Кроме того, не следует создавать объекты в контроллере, используя, по возможности, new
, используя вместо этого внедрение зависимостей и / или шаблон фабрики.
В вашем случае вы должны внедрить службу EventDispatcher (через EventDispatcherInterface) в ваш контроллер, используя автоматическую разводку, используя подсказку типа, как описано выше.