1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
<?php
namespace ICanBoogie\Validate\Validator;
use ICanBoogie\Validate\Context;
use ICanBoogie\Validate\Render;
abstract class AbstractComparisonValidator extends AbstractValidator
{
const PARAM_REFERENCE = 'reference';
const MESSAGE_ARG_REFERENCE = self::PARAM_REFERENCE;
const MESSAGE_ARG_VALUE_TYPE = 'value_type';
public function validate($value, Context $context)
{
$reference = $context->param(self::PARAM_REFERENCE);
$context->message_args[self::MESSAGE_ARG_REFERENCE] = $reference;
$context->message_args[self::MESSAGE_ARG_VALUE_TYPE] = Render::render_type($reference);
return $this->compare($value, $reference);
}
protected function get_params_mapping()
{
return [ self::PARAM_REFERENCE ];
}
abstract protected function compare($value, $reference);
}