Issues (8)

src/Exceptions/ConfigValidationFailedException.php (1 issue)

Labels
Severity
1
<?php
2
/**
3
 * This file is part of graze/config-validation.
4
 *
5
 * Copyright (c) 2017 Nature Delivered Ltd. <https://www.graze.com>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 *
10
 * @license https://github.com/graze/config-validation/blob/master/LICENSE.md
11
 * @link    https://github.com/graze/config-validation
12
 */
13
14
namespace Graze\ConfigValidation\Exceptions;
15
16
use Exception;
17
use Respect\Validation\Exceptions\NestedValidationException;
18
19
class ConfigValidationFailedException extends Exception
20
{
21
    /**
22
     * ConfigValidationFailedException constructor.
23
     *
24
     * @param string         $processorClass
25
     * @param int            $message
26
     * @param Exception|null $e
27
     */
28 15
    public function __construct($processorClass, $message, Exception $e = null)
29
    {
30 15
        $newMessage = "Processor '$processorClass' failed validation\n";
31 15
        if ($e instanceof NestedValidationException) {
32 14
            $newMessage .= "\n" . $e->getFullMessage() . "\n";
33 14
            $newMessage .= $this->getNestedMessage($e);
34
        } else {
35 1
            $newMessage .= $e->getMessage();
0 ignored issues
show
The method getMessage() does not exist on null. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

35
            $newMessage .= $e->/** @scrutinizer ignore-call */ getMessage();

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
36
        }
37 15
        $newMessage .= $message;
38
39 15
        parent::__construct($newMessage, 0, $e);
40 15
    }
41
42
    /**
43
     * @param NestedValidationException $e
44
     *
45
     * @return string
46
     */
47 14
    private function getNestedMessage(NestedValidationException $e)
48
    {
49 14
        $message = [];
50 14
        $iterator = $e->getMessages();
51 14
        foreach ($iterator as $m) {
52 14
            $message[] = $m;
53
        }
54
55 14
        return implode(PHP_EOL, $message);
56
    }
57
}
58