for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php declare(strict_types=1);
namespace Mgid\Component\Pagination\Validator;
use Symfony\Component\Validator\Exception;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
use Mgid\Component\Pagination\InputInterface;
final class LimitValidator extends ConstraintValidator
{
/**
* {@inheritdoc}
*/
public function validate($input, Constraint $constraint): void
if (!$constraint instanceof Limit) {
throw new Exception\UnexpectedTypeException($constraint, Limit::class); // @codeCoverageIgnore
}
if (!$input instanceof InputInterface) {
throw new Exception\UnexpectedTypeException($input, InputInterface::class); // @codeCoverageIgnore
if ($input->getLimit() >= $constraint->min && $input->getLimit() <= $constraint->max) {
return;
$this->context
->buildViolation($constraint->message)
->atPath('limit')
->setParameter('{{ value }}', (string) $input->getLimit())
->addViolation();