Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
Callback
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 validate
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace Verja\Validator;
4
5use Verja\Error;
6use Verja\Validator;
7
8class Callback extends Validator
9{
10    /** @var callable */
11    protected $callback;
12
13    /**
14     * Callback constructor.
15     *
16     * @param callable $callback
17     */
18    public function __construct(callable $callback)
19    {
20        $this->callback = $callback;
21    }
22
23    /** {@inheritdoc} */
24    public function validate($value, array $context = []): bool
25    {
26        $result = call_user_func($this->callback, $value, $context);
27
28        if ($result instanceof Error) {
29            $this->error = $result;
30            return false;
31        }
32
33        return (bool)$result;
34    }
35}