Server::run()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 20
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 20
rs 9.4285
c 0
b 0
f 0
ccs 0
cts 17
cp 0
cc 2
eloc 14
nc 2
nop 1
crap 6
1
<?php
2
3
namespace Venus\src\Batch\Controller;
4
5
use \Venus\lib\Bash as Bash;
6
use \Venus\src\Batch\common\Controller as Controller;
7
8
class Server extends Controller
9
{
10
    /**
11
     * new method to launch a web server
12
     * @param array $options
13
     * @tutorial php bin/console server:run
14
     *           php bin/console server:run -a 192.168.0.1:8000
15
     */
16
    public function run(array $options = array())
17
    {
18
        ob_get_clean();
19
20
        if (!isset($options['a'])) {
21
            $options['a'] = 'localhost:8000';
22
        }
23
24
        echo "\n\n";
25
        echo Bash::setBackground("                                                                            ", 'green');
26
        echo Bash::setBackground("          [OK] Start web server                                             ", 'green');
27
        echo Bash::setBackground("                                                                            ", 'green');
28
        echo "\n\n";
29
        echo "        > Use ".$options['a']." in browser";
30
        echo "\n\n";
31
        echo "        > Clic Ctrl+C to stop the web server";
32
        echo "\n\n";
33
34
        exec('php -S '.$options['a'].' /public/index.php');
35
    }
36
37
    /**
38
     * check if a server web is launched
39
     * @param array $options
40
     * @tutorial php bin/console server:status
41
     *           php bin/console server:status -a 192.168.0.1:8000
42
     */
43
    public function status(array $options = array())
44
    {
45
        ob_get_clean();
46
47
        if (!isset($options['a'])) {
48
            $options['a'] = 'localhost:8000';
49
        }
50
51
        list($hostname, $port) = explode(':', $options['a']);
52
53
        if (false !== $fp = @fsockopen($hostname, $port, $errno, $errstr, 1)) {
54
            fclose($fp);
55
56
            echo "\n\n";
57
            echo Bash::setBackground("                                                                            ", 'green');
58
            echo Bash::setBackground("          [OK] A web server is launched                                     ", 'green');
59
            echo Bash::setBackground("                                                                            ", 'green');
60
            echo "\n\n";
61
            echo "        > Check realized on ".$options['a'];
62
            echo "\n\n";
63
        }
64
        else {
65
            echo "\n\n";
66
            echo Bash::setBackground("                                                                            ", 'red');
67
            echo Bash::setBackground("          [WARNING] A web server is not used                                ", 'red');
68
            echo Bash::setBackground("                                                                            ", 'red');
69
            echo "\n\n";
70
            echo "        > Check realized on ".$options['a'];
71
            echo "\n\n";
72
        }
73
    }
74
}
75