Passed
Push — master ( c5a620...f982b7 )
by Joao
07:36
created

Foo   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 18
Duplicated Lines 100 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 0
dl 18
loc 18
rs 10
c 0
b 0
f 0

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
require_once('vendor/autoload.php');
3
4
class Foo
5
{
6
// Method to be executed in a thread
7
    public function bar($t)
8
    {
9
        echo "Starting thread #$t" . PHP_EOL;
10
11
        sleep(1 * rand(1, 5));
12
        for ($i = 0; $i < 10; $i++) {
13
            echo "Hello from thread #$t, i=$i" . PHP_EOL;
14
            sleep(1);
15
        }
16
        echo "Ending thread #$t" . PHP_EOL;
17
18
        // Note: this line below require the file "config/cacheconfig.php" exists
19
        return "$t: [[[[[[" . time() . "]]]]]]";
20
    }
21
}
22
23
try {
24
    $t = array();
25
26
    $foo = new Foo();
27
28
    // Create the threads
29
    for ($i = 0; $i < 10; $i++) {
30
        // Create a new instance of the Thread class, pointing to "Foo" function
31
        $thr = new \ByJG\PHPThread\Thread([$foo, 'bar']);
32
33
        // Started the method "Foo" in a tread
34
        $thr->execute($i);
35
36
        // Save the thread reference to be manipulate
37
        $t[] = $thr;
38
    }
39
40
    $done = false;
41
42
    // It is important to check if all threads are done
43
    // otherwise will be terminate when the php script is finished;
44
    foreach ($t as $thread) {
45
        $thread->waitFinish();
46
    }
47
48
    // Note: this line below require the file "config/cacheconfig.php" exists
49
    foreach ($t as $thread) {
50
        echo "Result: " . $thread->getResult() . "\n";
51
    }
52
53
} catch (Exception $e) {
54
    echo 'Exception: ' . $e . PHP_EOL;
55
}
56