Валидатор Symfony
Мой вопрос связан с компонентом проверки Symfony. Я не использую формы. И я хочу переместить правила проверки для каждой сущности в отдельный класс (например, AuthorVlidator, BookingValidator и т. Д.). Как я могу переместить его в отдельные классы и определить правила?
Благодарю.
1 ответ
Почему вы хотите переместить его в отдельные классы? С аннотациями это довольно легко использовать.
Это не очень хорошая идея, но если вы действительно хотите сделать это в других классах, вы можете добавить этот метод в каждый класс, который вы хотите проверить:
class YourObject
{
public static function loadValidatorMetadata(ClassMetadata $metadata)
{
YourObjectValidator::validate($this, $metadata);
}
}
А также:
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints\NotBlank;
class YourObjectValidator
{
public static function validate(YourObject $object, ClassMetadata $metadata)
{
$metadata->addPropertyConstraint('name', new NotBlank());
}
}
Если вы хотите отделить эту логику для добавления проверки в зависимости от значения свойств, это не правильный способ сделать это. Вы должны прочитать документ, обратный вызов может быть решением.