Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
7 / 7
Callback
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
2 / 2
3
100.00% covered (success)
100.00%
7 / 7
 __construct
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 validate
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
5 / 5
<?php
namespace Verja\Validator;
use Verja\Error;
use Verja\Validator;
class Callback extends Validator
{
    /** @var callable */
    protected $callback;
    /**
     * Callback constructor.
     *
     * @param callable $callback
     */
    public function __construct(callable $callback)
    {
        $this->callback = $callback;
    }
    /** {@inheritdoc} */
    public function validate($value, array $context = []): bool
    {
        $result = call_user_func($this->callback, $value, $context);
        if ($result instanceof Error) {
            $this->error = $result;
            return false;
        }
        return (bool)$result;
    }
}