Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Faker\Provider\ms_MY;
4
 
5
class PhoneNumber extends \Faker\Provider\PhoneNumber
6
{
7
    protected static $formats = [
8
        '{{mobileNumber}}',
9
        '{{fixedLineNumber}}',
10
        '{{voipNumber}}',
11
    ];
12
 
13
    protected static $plusSymbol = [
14
        '+',
15
    ];
16
 
17
    protected static $countryCodePrefix = [
18
        '6',
19
    ];
20
 
21
    /**
22
     * @see https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony
23
     */
24
    protected static $zeroOneOnePrefix = ['10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '22', '23', '32'];
25
    protected static $zeroOneFourPrefix = ['2', '3', '4', '5', '6', '7', '8', '9'];
26
    protected static $zeroOneFivePrefix = ['1', '2', '3', '4', '5', '6', '9'];
27
 
28
    /**
29
     * @see https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony
30
     */
31
    protected static $mobileNumberFormatsWithFormatting = [
32
        '010-### ####',
33
        '011-{{zeroOneOnePrefix}}## ####',
34
        '012-### ####',
35
        '013-### ####',
36
        '014-{{zeroOneFourPrefix}}## ####',
37
        '016-### ####',
38
        '017-### ####',
39
        '018-### ####',
40
        '019-### ####',
41
    ];
42
 
43
    protected static $mobileNumberFormats = [
44
        '010#######',
45
        '011{{zeroOneOnePrefix}}######',
46
        '012#######',
47
        '013#######',
48
        '014{{zeroOneFourPrefix}}######',
49
        '016#######',
50
        '017#######',
51
        '018#######',
52
        '019#######',
53
    ];
54
 
55
    /**
56
     * @see https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Geographic_area_codes
57
     */
58
    protected static $fixedLineNumberFormatsWithFormatting = [
59
        '03-#### ####',
60
        '04-### ####',
61
        '05-### ####',
62
        '06-### ####',
63
        '07-### ####',
64
        '08#-## ####',
65
        '09-### ####',
66
    ];
67
 
68
    protected static $fixedLineNumberFormats = [
69
        '03########',
70
        '04#######',
71
        '05#######',
72
        '06#######',
73
        '07#######',
74
        '08#######',
75
        '09#######',
76
    ];
77
 
78
    /**
79
     * @see https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony
80
     */
81
    protected static $voipNumberWithFormatting = [
82
        '015-{{zeroOneFivePrefix}}## ####',
83
    ];
84
 
85
    protected static $voipNumber = [
86
        '015{{zeroOneFivePrefix}}######',
87
    ];
88
 
89
    /**
90
     * Return a Malaysian Mobile Phone Number.
91
     *
92
     * @example '+6012-345-6789'
93
     *
94
     * @param bool $countryCodePrefix true, false
95
     * @param bool $formatting        true, false
96
     *
97
     * @return string
98
     */
99
    public function mobileNumber($countryCodePrefix = true, $formatting = true)
100
    {
101
        if ($formatting) {
102
            $format = static::randomElement(static::$mobileNumberFormatsWithFormatting);
103
        } else {
104
            $format = static::randomElement(static::$mobileNumberFormats);
105
        }
106
 
107
        if ($countryCodePrefix) {
108
            return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format));
109
        }
110
 
111
        return static::numerify($this->generator->parse($format));
112
    }
113
 
114
    /**
115
     * Return prefix digits for 011 numbers
116
     *
117
     * @example '10'
118
     *
119
     * @return string
120
     */
121
    public static function zeroOneOnePrefix()
122
    {
123
        return static::numerify(static::randomElement(static::$zeroOneOnePrefix));
124
    }
125
 
126
    /**
127
     * Return prefix digits for 014 numbers
128
     *
129
     * @example '2'
130
     *
131
     * @return string
132
     */
133
    public static function zeroOneFourPrefix()
134
    {
135
        return static::numerify(static::randomElement(static::$zeroOneFourPrefix));
136
    }
137
 
138
    /**
139
     * Return prefix digits for 015 numbers
140
     *
141
     * @example '1'
142
     *
143
     * @return string
144
     */
145
    public static function zeroOneFivePrefix()
146
    {
147
        return static::numerify(static::randomElement(static::$zeroOneFivePrefix));
148
    }
149
 
150
    /**
151
     * Return a Malaysian Fixed Line Phone Number.
152
     *
153
     * @example '+603-4567-8912'
154
     *
155
     * @param bool $countryCodePrefix true, false
156
     * @param bool $formatting        true, false
157
     *
158
     * @return string
159
     */
160
    public function fixedLineNumber($countryCodePrefix = true, $formatting = true)
161
    {
162
        if ($formatting) {
163
            $format = static::randomElement(static::$fixedLineNumberFormatsWithFormatting);
164
        } else {
165
            $format = static::randomElement(static::$fixedLineNumberFormats);
166
        }
167
 
168
        if ($countryCodePrefix) {
169
            return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format));
170
        }
171
 
172
        return static::numerify($this->generator->parse($format));
173
    }
174
 
175
    /**
176
     * Return a Malaysian VoIP Phone Number.
177
     *
178
     * @example '+6015-678-9234'
179
     *
180
     * @param bool $countryCodePrefix true, false
181
     * @param bool $formatting        true, false
182
     *
183
     * @return string
184
     */
185
    public function voipNumber($countryCodePrefix = true, $formatting = true)
186
    {
187
        if ($formatting) {
188
            $format = static::randomElement(static::$voipNumberWithFormatting);
189
        } else {
190
            $format = static::randomElement(static::$voipNumber);
191
        }
192
 
193
        if ($countryCodePrefix) {
194
            return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format));
195
        }
196
 
197
        return static::numerify($this->generator->parse($format));
198
    }
199
 
200
    /**
201
     * Return a Malaysian Country Code Prefix.
202
     *
203
     * @example '+6'
204
     *
205
     * @param bool $formatting true, false
206
     *
207
     * @return string
208
     */
209
    public static function countryCodePrefix($formatting = true)
210
    {
211
        if ($formatting) {
212
            return static::randomElement(static::$plusSymbol) . static::randomElement(static::$countryCodePrefix);
213
        }
214
 
215
        return static::randomElement(static::$countryCodePrefix);
216
    }
217
}