Рейтинг:2

addViolation() устарел: как его заменить?

флаг sa

Как адаптировать следующий код, чтобы избежать устаревания добавитьнарушение() согласно с https://www.drupal.org/node/3238432 ?

класс MyValidator расширяет ConstraintValidator {

  общедоступная функция проверки ($ элементы, ограничение $ ограничение) {
    если (!$this->isValid($items)) {
      $this->context->addViolation($constraint->message); // Как адаптировать эту строку?
    }
  }
}
4uk4 avatar
флаг cn
Я думаю, что сообщение об устаревании является ложной тревогой. В отличие от методов, упомянутых в записи об изменении, addViolation() не помечен как внутренний в Symfony 6, и если Drupal удалит этот метод, он заменит его кодом Symfony.
Baud avatar
флаг sa
Спасибо. Означает ли это, что код устаревания был ложно добавлен в метод addViolation()... Я бы сказал, какая-то основная ошибка?
4uk4 avatar
флаг cn
Это не добавлено ложно, ясно, что они хотят удалить эту реализацию метода. Это не меняет использование метода, хотя в Symfony он используется точно так же.
Рейтинг:2
флаг us

Код, указанный в вопросе, менять не нужно: один раз Начните использовать класс Symfony\Component\Validator\ValidatorBuilder вместо скопированных классов фиксированный, $это->контекст больше не будет содержать экземпляр \Drupal\Core\TypedData\Validation\ExecutionContext но \Symfony\Component\Validator\Context\ExecutionContext.
Как говорится в документации, классы, расширяющие ConstraintValidator следует просто предположить, что $это->контекст это объект, реализующий ExecutionContextInterface, а не какой класс фактически используется. При таком предположении изменения, внесенные этой проблемой, не повлияют на классы валидаторов contrain (за исключением того факта, что сообщение об устаревании больше не будет вызываться).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.