MessagesAttributes::buildMessage()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 3

Importance

Changes 0
Metric Value
cc 3
eloc 7
nc 3
nop 3
dl 0
loc 11
ccs 7
cts 7
cp 1
crap 3
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * @author: RunnerLee
4
 * @email: [email protected]
5
 * @time: 2018-12
6
 */
7
8
namespace Runner\Validator\Concerns;
9
10
use Exception;
11
12
trait MessagesAttributes
13
{
14
    protected $templates = [];
15
16 4
    protected function loadMessageTemplate($file, array $customMessage = [])
17
    {
18 4
        $this->templates = require $file;
19 4
        $this->templates = array_merge($this->templates, self::$extensionTemplates);
20
21 4
        foreach ($customMessage as $rule => $template) {
22 1
            $this->templates[self::formatRuleName($rule)] = $template;
23
        }
24 4
    }
25
26
    /**
27
     * @param string $rule
28
     * @param string $field
29
     * @param array  $parameters
30
     *
31
     * @return string
32
     */
33 3
    protected function buildMessage($rule, $field, array $parameters = [])
34
    {
35 3
        if (!isset($this->templates[$rule])) {
36 1
            return "{$field} field check failed";
37
        }
38 3
        array_unshift($parameters, "{$field} {$this->templates[$rule]}");
39
40
        try {
41 3
            return sprintf(...$parameters);
42 1
        } catch (Exception $e) {
43 1
            return "{$field} filed check failed";
44
        }
45
    }
46
}
47