for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace AmaTeam\ElasticSearch\Indexing\Validation\Constraint;
use AmaTeam\ElasticSearch\Indexing\Option\Infrastructure\Registry;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class ValidOptionNameValidator extends ConstraintValidator
{
/**
* @inheritDoc
* @param ValidOptionName $constraint
*/
public function validate($value, Constraint $constraint)
$context = $this->context;
if (!is_string($value)) {
$context
->buildViolation($constraint->illegalValueMessage)
->setParameter('{{ type }}', gettype($value))
->addViolation();
return;
}
$option = Registry::getInstance()->find($value);
if (!$option) {
->buildViolation($constraint->missingOptionMessage)
->setParameter('{{ name }}', $value)
if ($option->getId() !== $value) {
->buildViolation($constraint->message)
->setParameter('{{ id }}', $option->getId())