X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=vendor%2Fsymfony%2Fvalidator%2FConstraints%2FCallbackValidator.php;fp=vendor%2Fsymfony%2Fvalidator%2FConstraints%2FCallbackValidator.php;h=733ee43ba75e333e8b7e96e84d71c9237261aef9;hb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;hp=df4920401197f0b072c1e55228e71a3eb257232c;hpb=aea91e65e895364e460983b890e295aa5d5540a5;p=yaffs-website diff --git a/vendor/symfony/validator/Constraints/CallbackValidator.php b/vendor/symfony/validator/Constraints/CallbackValidator.php index df4920401..733ee43ba 100644 --- a/vendor/symfony/validator/Constraints/CallbackValidator.php +++ b/vendor/symfony/validator/Constraints/CallbackValidator.php @@ -32,45 +32,29 @@ class CallbackValidator extends ConstraintValidator throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Callback'); } - if (null !== $constraint->callback && null !== $constraint->methods) { - throw new ConstraintDefinitionException( - 'The Callback constraint supports either the option "callback" '. - 'or "methods", but not both at the same time.' - ); - } - - // has to be an array so that we can differentiate between callables - // and method names - if (null !== $constraint->methods && !is_array($constraint->methods)) { - throw new UnexpectedTypeException($constraint->methods, 'array'); - } - - $methods = $constraint->methods ?: array($constraint->callback); - - foreach ($methods as $method) { - if ($method instanceof \Closure) { - $method($object, $this->context); - } elseif (is_array($method)) { - if (!is_callable($method)) { - if (isset($method[0]) && is_object($method[0])) { - $method[0] = get_class($method[0]); - } - throw new ConstraintDefinitionException(sprintf('%s targeted by Callback constraint is not a valid callable', json_encode($method))); + $method = $constraint->callback; + if ($method instanceof \Closure) { + $method($object, $this->context, $constraint->payload); + } elseif (is_array($method)) { + if (!is_callable($method)) { + if (isset($method[0]) && is_object($method[0])) { + $method[0] = get_class($method[0]); } + throw new ConstraintDefinitionException(sprintf('%s targeted by Callback constraint is not a valid callable', json_encode($method))); + } - call_user_func($method, $object, $this->context); - } elseif (null !== $object) { - if (!method_exists($object, $method)) { - throw new ConstraintDefinitionException(sprintf('Method "%s" targeted by Callback constraint does not exist in class %s', $method, get_class($object))); - } + call_user_func($method, $object, $this->context, $constraint->payload); + } elseif (null !== $object) { + if (!method_exists($object, $method)) { + throw new ConstraintDefinitionException(sprintf('Method "%s" targeted by Callback constraint does not exist in class %s', $method, get_class($object))); + } - $reflMethod = new \ReflectionMethod($object, $method); + $reflMethod = new \ReflectionMethod($object, $method); - if ($reflMethod->isStatic()) { - $reflMethod->invoke(null, $object, $this->context); - } else { - $reflMethod->invoke($object, $this->context); - } + if ($reflMethod->isStatic()) { + $reflMethod->invoke(null, $object, $this->context, $constraint->payload); + } else { + $reflMethod->invoke($object, $this->context, $constraint->payload); } } }