@@ 13-46 (lines=34) @@ | ||
10 | * Class ExactMatchConfig. |
|
11 | * @author Ivan Barlog <[email protected]> |
|
12 | */ |
|
13 | class ExactConfig extends MatchConfig |
|
14 | { |
|
15 | const OPTION_MATCH = 'match'; |
|
16 | ||
17 | /** |
|
18 | * @param string $className |
|
19 | * @param array $arguments |
|
20 | * @return ExactMatch |
|
21 | */ |
|
22 | protected function getObject(string $className, array $arguments) |
|
23 | { |
|
24 | return new $className($arguments[self::OPTION_MATCH]); |
|
25 | } |
|
26 | ||
27 | /** |
|
28 | * @param ExactMatch $item |
|
29 | * @return array |
|
30 | */ |
|
31 | protected function getArray($item): array |
|
32 | { |
|
33 | return [ |
|
34 | self::OPTION_CLASS => get_class($item), |
|
35 | self::OPTION_MATCH => $item->getValue(), |
|
36 | ]; |
|
37 | } |
|
38 | ||
39 | protected function config() |
|
40 | { |
|
41 | $this->resolver->setRequired(self::OPTION_MATCH); |
|
42 | $this->resolver->setAllowedTypes(self::OPTION_MATCH, 'string'); |
|
43 | ||
44 | $this->supportedClasses[] = ExactMatch::class; |
|
45 | } |
|
46 | } |
|
47 |
@@ 13-46 (lines=34) @@ | ||
10 | * Class PrefixConfig. |
|
11 | * @author Ivan Barlog <[email protected]> |
|
12 | */ |
|
13 | class PrefixConfig extends MatchConfig |
|
14 | { |
|
15 | const OPTION_PREFIX = 'prefix'; |
|
16 | ||
17 | /** |
|
18 | * @param string $className |
|
19 | * @param array $arguments |
|
20 | * @return PrefixMatch |
|
21 | */ |
|
22 | protected function getObject(string $className, array $arguments) |
|
23 | { |
|
24 | return new $className($arguments[self::OPTION_PREFIX]); |
|
25 | } |
|
26 | ||
27 | /** |
|
28 | * @param PrefixMatch $item |
|
29 | * @return array |
|
30 | */ |
|
31 | protected function getArray($item): array |
|
32 | { |
|
33 | return [ |
|
34 | self::OPTION_CLASS => get_class($item), |
|
35 | self::OPTION_PREFIX => $item->getPrefix(), |
|
36 | ]; |
|
37 | } |
|
38 | ||
39 | protected function config() |
|
40 | { |
|
41 | $this->resolver->setRequired(self::OPTION_PREFIX); |
|
42 | $this->resolver->setAllowedTypes(self::OPTION_PREFIX, 'string'); |
|
43 | ||
44 | $this->supportedClasses[] = PrefixMatch::class; |
|
45 | } |
|
46 | } |
|
47 |