Я использую OhDateExtraValidatorBundle, а потому, что мой Pull Request еще не принят. Мне нужно будет его локализовать.Symfony2: переопределить валидатор пакета
Я читал the documentation, но не смог заставить его работать для ограничения валидатора.
Вот что я сделал:
- Создано новый Bundle (так что я могу переопределить более одного Экстерн узелок), называется MyDateExtraValidatorBundle
Добавлен
getParent()
метод:public function getParent() { return 'OhDateExtraValidatorBundle'; }
Написал мою модификацию по тому же пути, что и исходный комплект е:
namespace MYVENDOR\MyDateExtraValidatorBundle\Validator\Constraints; use Oh\DateExtraValidatorBundle\Validator\Constraints\DateExtraValidator as ConstraintValidator; class DateExtraValidator extends ConstraintValidator { public function validate($value, Constraint $constraint) { parent::validate($value, Constraint $constraint); if (null === $value || '' === $value){ return; } if(is_object($value) && method_exists($value, '__toString')) { $value = (string) $value; } if (!$dateTime->getTimestamp()) { $this->context->addViolation($constraint->invalidMessage); return; } } }
Но он никогда не загружен.
Я также попытался использовать прямое имя моего пакета в сущности (с помощью специального валидатора), но не работает.
use MYVENDOR\MyDateExtraValidatorBundle\Validator\Constraints as OhAssert;
=>
The annotation "@MYVENDOR\MyDateExtraValidatorBundle\Validator\Constraints\DateExtra" [...] does not exist, or could not be auto-loaded.
Что правильно делать?
Спасибо, это именно то, что мне нужно, отлично работает после добавления пространств имен! Мысль, почему он не может быть «нормальным» способом переопределить проверки валидатора? Это очень чисто и не нужно много строк кода.! – Bonswouar
@Bonswouar Это должен быть «обычный способ» *, эта функциональность еще не реализована, как указано в ссылках на документацию: * «In progress» *. – Touki
Что вы подразумеваете под реализацией, как документально? Btw У меня есть [еще одна проблема] (http://stackoverflow.com/questions/18403366/symfony2-recursive-validation), если вы хотите взглянуть! ;) – Bonswouar