Plugin::checkRequirements()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 2.1481

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 4
ccs 2
cts 3
cp 0.6667
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 1
crap 2.1481
1
<?php
2
3
/**
4
 * This file is part of the `tvi/monitor-bundle` project.
5
 *
6
 * (c) https://github.com/turnaev/monitor-bundle/graphs/contributors
7
 *
8
 * For the full copyright and license information, please view the LICENSE.md
9
 * file that was distributed with this source code.
10
 */
0 ignored issues
show
Coding Style introduced by
PHP version not specified
Loading history...
Coding Style introduced by
Missing @category tag in file comment
Loading history...
Coding Style introduced by
Missing @package tag in file comment
Loading history...
Coding Style introduced by
Missing @author tag in file comment
Loading history...
Coding Style introduced by
Missing @license tag in file comment
Loading history...
Coding Style introduced by
Missing @link tag in file comment
Loading history...
11
12
namespace Tvi\MonitorBundle\Check\php\Expression;
13
14
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
15
use Tvi\MonitorBundle\Check\CheckPluginAbstract;
16
use Tvi\MonitorBundle\Exception\FeatureRequired;
17
18
/**
0 ignored issues
show
Coding Style introduced by
Missing short description in doc comment
Loading history...
19
 * @author Vladimir Turnaev <[email protected]>
20
 */
0 ignored issues
show
Coding Style introduced by
Missing @category tag in class comment
Loading history...
Coding Style introduced by
Missing @package tag in class comment
Loading history...
Coding Style introduced by
Missing @license tag in class comment
Loading history...
Coding Style introduced by
Missing @link tag in class comment
Loading history...
21
class Plugin extends CheckPluginAbstract
22
{
23
    const DESCR =
0 ignored issues
show
Coding Style introduced by
Multi-line assignments must have the equal sign on the second line
Loading history...
24
<<<'TXT'
0 ignored issues
show
Coding Style introduced by
Line indented incorrectly; expected at least 4 spaces, found 0
Loading history...
25
expression description
26
TXT;
27
28
    const PATH = __DIR__;
29
30
    const GROUP = 'php';
31
    const CHECK_NAME = 'core:expression';
32
33
    /**
0 ignored issues
show
Coding Style introduced by
Missing short description in doc comment
Loading history...
Coding Style introduced by
Parameter $checkSettings should have a doc-comment as per coding-style.
Loading history...
34
     * @throws FeatureRequired
35
     */
0 ignored issues
show
Coding Style introduced by
Missing @return tag in function comment
Loading history...
36 1
    public function checkRequirements(array $checkSettings)
37
    {
38 1
        if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) {
39
            throw new FeatureRequired('The symfony/expression-language is required for '.static::class.' check.');
40
        }
41 1
    }
42
43 57
    protected function _check(ArrayNodeDefinition $node): ArrayNodeDefinition
0 ignored issues
show
Coding Style introduced by
Missing doc comment for function _check()
Loading history...
Coding Style introduced by
Protected method name "Plugin::_check" must not be prefixed with an underscore
Loading history...
44
    {
45
        $node = $node
46 57
            ->children()
47 57
                ->arrayNode('check')
0 ignored issues
show
Coding Style introduced by
Object operator not indented correctly; expected 12 spaces but found 16
Loading history...
48 57
                    ->addDefaultsIfNotSet()
0 ignored issues
show
Coding Style introduced by
Object operator not indented correctly; expected 12 spaces but found 20
Loading history...
49 57
                    ->validate()
0 ignored issues
show
Coding Style introduced by
Object operator not indented correctly; expected 12 spaces but found 20
Loading history...
50 57
                        ->ifTrue(static function ($value) {
0 ignored issues
show
Coding Style introduced by
Object operator not indented correctly; expected 12 spaces but found 24
Loading history...
Coding Style introduced by
The opening parenthesis of a multi-line function call should be the last content on the line.
Loading history...
51 1
                            return !$value['warningExpression'] && !$value['criticalExpression'];
52 57
                        })
0 ignored issues
show
Coding Style introduced by
For multi-line function calls, the closing parenthesis should be on a new line.

If a function call spawns multiple lines, the coding standard suggests to move the closing parenthesis to a new line:

someFunctionCall(
    $firstArgument,
    $secondArgument,
    $thirdArgument
); // Closing parenthesis on a new line.
Loading history...
53 57
                        ->thenInvalid('A warningExpression or a criticalExpression must be set.')
54 57
                    ->end()
55 57
                    ->children()
56 57
                      ->scalarNode('criticalExpression')->defaultNull()->example('ini(\'apc.stat\') == 0')->end()
57 57
                      ->scalarNode('criticalMessage')->defaultNull()->end()
58 57
                      ->scalarNode('warningExpression')->defaultNull()->example('ini(\'short_open_tag\') == 1')->end()
59 57
                      ->scalarNode('warningMessage')->defaultNull()->end()
60 57
                    ->end()
61 57
                ->end()
62 57
            ->end();
63
64 57
        $this->_addition($node);
65
66 57
        return $node;
67
    }
68
}
69