Completed
Push — master ( d43c5c...b3fdf0 )
by ARCANEDEV
03:49
created

checkApacheRequirements()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
cc 2
eloc 7
nc 2
nop 1
dl 0
loc 13
ccs 0
cts 8
cp 0
crap 6
rs 9.4285
c 0
b 0
f 0
1
<?php namespace Arcanesoft\Foundation\ViewComposers\System;
2
3
use Illuminate\View\View;
4
5
/**
6
 * Class     ServerRequirementsComposer
7
 *
8
 * @package  Arcanesoft\Foundation\ViewComposers\System
9
 * @author   ARCANEDEV <[email protected]>
10
 */
11
class ServerRequirementsComposer
12
{
13
    /* ------------------------------------------------------------------------------------------------
14
     |  Constants
15
     | ------------------------------------------------------------------------------------------------
16
     */
17
    const VIEW_NAME = 'foundation::admin.system.information._includes.server-requirements';
18
19
    /* ------------------------------------------------------------------------------------------------
20
     |  Main Functions
21
     | ------------------------------------------------------------------------------------------------
22
     */
23
    /**
24
     * Compose the view.
25
     *
26
     * @param  \Illuminate\View\View  $view
27
     */
28
    public function compose(View $view)
29
    {
30
        $requirements['php'] = $this->checkPhpRequirements([
0 ignored issues
show
Coding Style Comprehensibility introduced by
$requirements was never initialized. Although not strictly required by PHP, it is generally a good practice to add $requirements = array(); before regardless.

Adding an explicit array definition is generally preferable to implicit array definition as it guarantees a stable state of the code.

Let’s take a look at an example:

foreach ($collection as $item) {
    $myArray['foo'] = $item->getFoo();

    if ($item->hasBar()) {
        $myArray['bar'] = $item->getBar();
    }

    // do something with $myArray
}

As you can see in this example, the array $myArray is initialized the first time when the foreach loop is entered. You can also see that the value of the bar key is only written conditionally; thus, its value might result from a previous iteration.

This might or might not be intended. To make your intention clear, your code more readible and to avoid accidental bugs, we recommend to add an explicit initialization $myArray = array() either outside or inside the foreach loop.

Loading history...
31
            'openssl',
32
            'pdo',
33
            'mbstring',
34
            'tokenizer',
35
            'xml',
36
        ]);
37
38
        $requirements['apache'] = $this->checkApacheRequirements([
39
            'mod_rewrite',
40
        ]);
41
42
        $view->with('requirements', $requirements);
43
    }
44
45
    /* ------------------------------------------------------------------------------------------------
46
     |  Other Functions
47
     | ------------------------------------------------------------------------------------------------
48
     */
49
    /**
50
     * Check the PHP requirements.
51
     *
52
     * @param  array  $requirements
53
     *
54
     * @return \Illuminate\Support\Collection
55
     */
56
    private function checkPhpRequirements(array $requirements)
57
    {
58
        $requirements = array_combine($requirements, $requirements);
59
60
        return collect($requirements)->transform(function ($requirement) {
61
            return extension_loaded($requirement);
62
        });
63
    }
64
65
    /**
66
     * Check the APACHE requirements.
67
     *
68
     * @param  array  $requirements
69
     *
70
     * @return \Illuminate\Support\Collection
71
     */
72
    private function checkApacheRequirements(array $requirements)
73
    {
74
        if ( ! function_exists('apache_get_modules')) {
75
            return collect([]);
76
        }
77
78
        $modules      = apache_get_modules();
79
        $requirements = array_combine($requirements, $requirements);
80
81
        return collect($requirements)->transform(function ($requirement) use ($modules) {
82
            return in_array($requirement, $modules);
83
        });
84
    }
85
}
86