Constant   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 18
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 18
ccs 8
cts 8
cp 1
rs 10
c 0
b 0
f 0
wmc 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getName() 0 3 1
A execute() 0 11 4
1
<?php
2
/**
3
 * This file is part of NACL.
4
 *
5
 * For the full copyright and license information, please view the LICENSE
6
 * file that was distributed with this source code.
7
 *
8
 * @copyright 2019 Nuglif (2018) Inc.
9
 * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
10
 * @author    Pierrick Charron <[email protected]>
11
 * @author    Charle Demers <[email protected]>
12
 */
13
14
declare(strict_types=1);
15
16
namespace Nuglif\Nacl\Macros;
17
18
use Nuglif\Nacl\MacroInterface;
19
20
class Constant implements MacroInterface
21
{
22 591
    public function getName(): string
23
    {
24 591
        return 'const';
25
    }
26
27 4
    public function execute(mixed $parameter, array $options = []): mixed
28
    {
29 4
        if (!is_string($parameter)) {
30 1
            throw new \InvalidArgumentException('Constant parameter must be a string');
31
        }
32
33 3
        if (!defined($parameter) && array_key_exists('default', $options)) {
34 1
            return $options['default'];
35
        }
36
37 2
        return constant($parameter);
38
    }
39
}
40