/** * @param State $state * @return IdCardInterface */ public function instantiateIdCard(State $state = null) { $event = new InstantiateIdCardEvent($state); $this->dispatcher->dispatch(ValidationEvents::VALIDATION_ID_CARD_INSTANTIATE, $event); $idCard = $event->getIdCard(); if (!$idCard instanceof IdCardInterface) { $idCard = new IdCard(); if ($state instanceof State) { $idCard->setState($state); } } return $idCard; }