MessagesAttributes   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 13
dl 0
loc 32
ccs 13
cts 13
cp 1
rs 10
c 0
b 0
f 0
wmc 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A loadMessageTemplate() 0 7 2
A buildMessage() 0 11 3
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