Completed
Push — master ( 379248...c97627 )
by ARCANEDEV
04:05
created

ServerRequirementsComposer   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 49
ccs 0
cts 13
cp 0
rs 10
c 0
b 0
f 0
wmc 2
lcom 0
cbo 1

2 Methods

Rating   Name   Duplication   Size   Complexity  
A compose() 0 11 1
A checkRequirements() 0 8 1
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::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 = $this->checkRequirements([
31
            'openssl',
32
            'pdo',
33
            'mbstring',
34
            'tokenizer'
35
        ]);
36
37
        $view->with('requirements', $requirements);
38
    }
39
40
    /* ------------------------------------------------------------------------------------------------
41
     |  Other Functions
42
     | ------------------------------------------------------------------------------------------------
43
     */
44
    /**
45
     * Check the server requirements.
46
     *
47
     * @param  array  $requirements
48
     *
49
     * @return \Illuminate\Support\Collection
50
     */
51
    private function checkRequirements(array $requirements)
52
    {
53
        $requirements = array_combine($requirements, $requirements);
54
55
        return collect($requirements)->transform(function ($requirement) {
56
            return extension_loaded($requirement);
57
        });
58
    }
59
}
60