Phonenumber   A
last analyzed

Complexity

Total Complexity 23

Size/Duplication

Total Lines 62
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 62
rs 10
c 0
b 0
f 0
wmc 23
lcom 0
cbo 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
D getOperator() 0 27 18
A getPhoneWithoutPrefix() 0 15 5
1
<?php
2
3
namespace Tematech\Phonenumber;
4
5
class Phonenumber
6
{
7
    const ORANGE = 10;
8
    const MTN = 11;
9
    const NEXTTEL = 12;
10
    const CAMTEL = 13;
11
    const UNKOWN = -1;
12
    /**
13
     * get operator from phone
14
     *
15
     * @param string $phone
16
     * @return integer
17
     */
18
    public static function getOperator(string $phone): int
19
    {
20
        $phone = self::getPhoneWithoutPrefix(trim($phone));
21
        
22
        if(strlen($phone) !== 9) return self::UNKOWN;
23
        if (startsWith($phone, '69')) {
24
            return self::ORANGE;
25
        }
26
        if (
27
            startsWith($phone, '655') || startsWith($phone, '656') || startsWith($phone, '657')
28
            || startsWith($phone, '658') || startsWith($phone, '659')
29
        ) {
30
            return self::ORANGE;
31
        }
32
        if (startsWith($phone, '67'))
33
            return self::MTN;
34
        if (
35
            startsWith($phone, '650') || startsWith($phone, '651') || startsWith($phone, '652')
36
            || startsWith($phone, '653') || startsWith($phone, '654') || startsWith($phone, '680') || startsWith($phone, '681')
37
            || startsWith($phone, '682')
38
        ) {
39
            return self::MTN;
40
        }
41
        if (startsWith($phone, '66'))
42
            return self::NEXTTEL;
43
        return self::UNKOWN;
44
    }
45
    /**
46
     * Undocumented function
47
     *
48
     * @param string $phone
49
     * @return string
50
     */
51
    public static function getPhoneWithoutPrefix(string $phone): string
52
    {
53
        if (strlen($phone) == 12) {
54
            return substr($phone, 3,9);
55
        }
56
        if (strlen($phone) == 11) {
57
            return '6' . str_replace('237', '', $phone);
58
        }
59
        if (strlen($phone) == 9) {
60
            return $phone;
61
        }
62
        if (strlen($phone) == 8)
63
            return '6' . $phone;
64
        return $phone;
65
    }
66
}
67