Completed
Push — master ( 198800...1a9f17 )
by Propa
07:51
created
src/Exceptions/NumberParseException.php 1 patch
Indentation   +55 added lines, -55 removed lines patch added patch discarded remove patch
@@ -5,69 +5,69 @@
 block discarded – undo
5 5
 
6 6
 class NumberParseException extends libNumberParseException
7 7
 {
8
-    /**
9
-     * @var string
10
-     */
11
-    protected $number;
8
+	/**
9
+	 * @var string
10
+	 */
11
+	protected $number;
12 12
 
13
-    /**
14
-     * @var array
15
-     */
16
-    protected $countries = [];
13
+	/**
14
+	 * @var array
15
+	 */
16
+	protected $countries = [];
17 17
 
18
-    /**
19
-     * Country specification required static constructor.
20
-     *
21
-     * @param string $number
22
-     * @return static
23
-     */
24
-    public static function countryRequired($number)
25
-    {
26
-        $exception = new static(
27
-            libNumberParseException::INVALID_COUNTRY_CODE,
28
-            'Number requires a country to be specified.'
29
-        );
18
+	/**
19
+	 * Country specification required static constructor.
20
+	 *
21
+	 * @param string $number
22
+	 * @return static
23
+	 */
24
+	public static function countryRequired($number)
25
+	{
26
+		$exception = new static(
27
+			libNumberParseException::INVALID_COUNTRY_CODE,
28
+			'Number requires a country to be specified.'
29
+		);
30 30
 
31
-        $exception->number = $number;
31
+		$exception->number = $number;
32 32
 
33
-        return $exception;
34
-    }
33
+		return $exception;
34
+	}
35 35
 
36
-    /**
37
-     * Country mismatch static constructor.
38
-     *
39
-     * @param string $number
40
-     * @param string|array $country
41
-     * @return static
42
-     */
43
-    public static function countryMismatch($number, $countries)
44
-    {
45
-        $countries = array_filter(is_array($countries) ? $countries : [$countries]);
36
+	/**
37
+	 * Country mismatch static constructor.
38
+	 *
39
+	 * @param string $number
40
+	 * @param string|array $country
41
+	 * @return static
42
+	 */
43
+	public static function countryMismatch($number, $countries)
44
+	{
45
+		$countries = array_filter(is_array($countries) ? $countries : [$countries]);
46 46
 
47
-        $exception = new static(
48
-            libNumberParseException::INVALID_COUNTRY_CODE,
49
-            'Number does not match the provided '. Str::plural('country', count($countries)).'.'
50
-        );
47
+		$exception = new static(
48
+			libNumberParseException::INVALID_COUNTRY_CODE,
49
+			'Number does not match the provided '. Str::plural('country', count($countries)).'.'
50
+		);
51 51
 
52
-        $exception->number = $number;
53
-        $exception->countries = $countries;
52
+		$exception->number = $number;
53
+		$exception->countries = $countries;
54 54
 
55
-        return $exception;
56
-    }
55
+		return $exception;
56
+	}
57 57
 
58
-    /**
59
-     * @return string
60
-     */
61
-    public function getNumber()
62
-    {
63
-        return $this->number;
64
-    }
58
+	/**
59
+	 * @return string
60
+	 */
61
+	public function getNumber()
62
+	{
63
+		return $this->number;
64
+	}
65 65
 
66
-    /**
67
-     * @return array
68
-     */
69
-    public function getCountries()
70
-    {
71
-        return $this->countries;
72
-    }
66
+	/**
67
+	 * @return array
68
+	 */
69
+	public function getCountries()
70
+	{
71
+		return $this->countries;
72
+	}
73 73
 }
74 74
\ No newline at end of file
Please login to merge, or discard this patch.
src/Validation/Phone.php 1 patch
Indentation   +118 added lines, -118 removed lines patch added patch discarded remove patch
@@ -11,122 +11,122 @@
 block discarded – undo
11 11
 
12 12
 class Phone
13 13
 {
14
-    use ParsesCountries,
15
-        ParsesTypes;
16
-
17
-    /**
18
-     * @var \libphonenumber\PhoneNumberUtil
19
-     */
20
-    protected $lib;
21
-
22
-    /**
23
-     * Phone constructor.
24
-     */
25
-    public function __construct()
26
-    {
27
-        $this->lib = PhoneNumberUtil::getInstance();
28
-    }
29
-
30
-    /**
31
-     * Validates a phone number.
32
-     *
33
-     * @param  string $attribute
34
-     * @param  mixed  $value
35
-     * @param  array  $parameters
36
-     * @param  object $validator
37
-     * @return bool
38
-     */
39
-    public function validate($attribute, $value, array $parameters, $validator)
40
-    {
41
-        $data = $validator->getData();
42
-
43
-        list(
44
-            $countries,
45
-            $types,
46
-            $detect,
47
-            $lenient) = $this->extractParameters($attribute, $parameters, $data);
48
-
49
-        // A "null" country is prepended:
50
-        // 1. In case of auto-detection to have the validation run first without supplying a country.
51
-        // 2. In case of lenient validation without provided countries; we still might have some luck...
52
-        if ($detect || ($lenient && empty($countries))) {
53
-            array_unshift($countries, null);
54
-        }
55
-
56
-        foreach ($countries as $country) {
57
-            try {
58
-                // Parsing the phone number also validates the country, so no need to do this explicitly.
59
-                // It'll throw a PhoneCountryException upon failure.
60
-                $phoneNumber = PhoneNumber::make($value, $country);
61
-
62
-                // Type validation.
63
-                if (! empty($types) && ! $phoneNumber->isOfType($types)) {
64
-                    continue;
65
-                }
66
-
67
-                $lenientPhoneNumber = $phoneNumber->lenient()->getPhoneNumberInstance();
68
-
69
-                // Lenient validation.
70
-                if ($lenient && $this->lib->isPossibleNumber($lenientPhoneNumber, $country)) {
71
-                    return true;
72
-                }
73
-
74
-                $phoneNumberInstance = $phoneNumber->getPhoneNumberInstance();
75
-
76
-                // Country detection.
77
-                if ($detect && $this->lib->isValidNumber($phoneNumberInstance)) {
78
-                    return true;
79
-                }
80
-
81
-                // Default number+country validation.
82
-                if ($this->lib->isValidNumberForRegion($phoneNumberInstance, $country)) {
83
-                    return true;
84
-                }
85
-            } catch (NumberParseException $e) {
86
-                continue;
87
-            }
88
-        }
89
-
90
-        return false;
91
-    }
92
-
93
-    /**
94
-     * Parse and extract parameters in the appropriate validation arguments.
95
-     *
96
-     * @param string $attribute
97
-     * @param array  $parameters
98
-     * @param array  $data
99
-     * @return array
100
-     * @throws \Propaganistas\LaravelPhone\Exceptions\InvalidParameterException
101
-     */
102
-    protected function extractParameters($attribute, array $parameters, array $data)
103
-    {
104
-        $parameters = array_map('strtolower', $parameters);
105
-
106
-        // Discover if an input field was provided. If not, guess the field's name.
107
-        $inputField = Collection::make($parameters)
108
-                                ->intersect(array_keys(Arr::dot($data)))
109
-                                ->first() ?: "${attribute}_country";
110
-
111
-        // Attempt to retrieve the field's value.
112
-        if ($inputCountry = Arr::get($data, $inputField)) {
113
-
114
-            if (static::isValidType($inputField)) {
115
-                throw InvalidParameterException::ambiguous($inputField);
116
-            }
117
-
118
-            // Invalid country field values should just validate to false.
119
-            // This will also prevent parameter hijacking through the country field.
120
-            if (static::isValidCountryCode($inputCountry)) {
121
-                $parameters[] = $inputCountry;
122
-            }
123
-        }
124
-
125
-        return [
126
-            static::parseCountries($parameters),
127
-            static::parseTypes($parameters),
128
-            in_array('auto', $parameters),
129
-            in_array('lenient', $parameters)
130
-        ];
131
-    }
14
+	use ParsesCountries,
15
+		ParsesTypes;
16
+
17
+	/**
18
+	 * @var \libphonenumber\PhoneNumberUtil
19
+	 */
20
+	protected $lib;
21
+
22
+	/**
23
+	 * Phone constructor.
24
+	 */
25
+	public function __construct()
26
+	{
27
+		$this->lib = PhoneNumberUtil::getInstance();
28
+	}
29
+
30
+	/**
31
+	 * Validates a phone number.
32
+	 *
33
+	 * @param  string $attribute
34
+	 * @param  mixed  $value
35
+	 * @param  array  $parameters
36
+	 * @param  object $validator
37
+	 * @return bool
38
+	 */
39
+	public function validate($attribute, $value, array $parameters, $validator)
40
+	{
41
+		$data = $validator->getData();
42
+
43
+		list(
44
+			$countries,
45
+			$types,
46
+			$detect,
47
+			$lenient) = $this->extractParameters($attribute, $parameters, $data);
48
+
49
+		// A "null" country is prepended:
50
+		// 1. In case of auto-detection to have the validation run first without supplying a country.
51
+		// 2. In case of lenient validation without provided countries; we still might have some luck...
52
+		if ($detect || ($lenient && empty($countries))) {
53
+			array_unshift($countries, null);
54
+		}
55
+
56
+		foreach ($countries as $country) {
57
+			try {
58
+				// Parsing the phone number also validates the country, so no need to do this explicitly.
59
+				// It'll throw a PhoneCountryException upon failure.
60
+				$phoneNumber = PhoneNumber::make($value, $country);
61
+
62
+				// Type validation.
63
+				if (! empty($types) && ! $phoneNumber->isOfType($types)) {
64
+					continue;
65
+				}
66
+
67
+				$lenientPhoneNumber = $phoneNumber->lenient()->getPhoneNumberInstance();
68
+
69
+				// Lenient validation.
70
+				if ($lenient && $this->lib->isPossibleNumber($lenientPhoneNumber, $country)) {
71
+					return true;
72
+				}
73
+
74
+				$phoneNumberInstance = $phoneNumber->getPhoneNumberInstance();
75
+
76
+				// Country detection.
77
+				if ($detect && $this->lib->isValidNumber($phoneNumberInstance)) {
78
+					return true;
79
+				}
80
+
81
+				// Default number+country validation.
82
+				if ($this->lib->isValidNumberForRegion($phoneNumberInstance, $country)) {
83
+					return true;
84
+				}
85
+			} catch (NumberParseException $e) {
86
+				continue;
87
+			}
88
+		}
89
+
90
+		return false;
91
+	}
92
+
93
+	/**
94
+	 * Parse and extract parameters in the appropriate validation arguments.
95
+	 *
96
+	 * @param string $attribute
97
+	 * @param array  $parameters
98
+	 * @param array  $data
99
+	 * @return array
100
+	 * @throws \Propaganistas\LaravelPhone\Exceptions\InvalidParameterException
101
+	 */
102
+	protected function extractParameters($attribute, array $parameters, array $data)
103
+	{
104
+		$parameters = array_map('strtolower', $parameters);
105
+
106
+		// Discover if an input field was provided. If not, guess the field's name.
107
+		$inputField = Collection::make($parameters)
108
+								->intersect(array_keys(Arr::dot($data)))
109
+								->first() ?: "${attribute}_country";
110
+
111
+		// Attempt to retrieve the field's value.
112
+		if ($inputCountry = Arr::get($data, $inputField)) {
113
+
114
+			if (static::isValidType($inputField)) {
115
+				throw InvalidParameterException::ambiguous($inputField);
116
+			}
117
+
118
+			// Invalid country field values should just validate to false.
119
+			// This will also prevent parameter hijacking through the country field.
120
+			if (static::isValidCountryCode($inputCountry)) {
121
+				$parameters[] = $inputCountry;
122
+			}
123
+		}
124
+
125
+		return [
126
+			static::parseCountries($parameters),
127
+			static::parseTypes($parameters),
128
+			in_array('auto', $parameters),
129
+			in_array('lenient', $parameters)
130
+		];
131
+	}
132 132
 }
Please login to merge, or discard this patch.