Completed
Pull Request — master (#94)
by Propa
03:39
created
src/Traits/ParsesTypes.php 2 patches
Indentation   +63 added lines, -63 removed lines patch added patch discarded remove patch
@@ -7,74 +7,74 @@
 block discarded – undo
7 7
 
8 8
 trait ParsesTypes
9 9
 {
10
-    /**
11
-     * Array of available phone types.
12
-     *
13
-     * @var array
14
-     */
15
-    protected static $types;
10
+	/**
11
+	 * Array of available phone types.
12
+	 *
13
+	 * @var array
14
+	 */
15
+	protected static $types;
16 16
 
17
-    /**
18
-     * Determine whether the given type is valid.
19
-     *
20
-     * @param string $type
21
-     * @return bool
22
-     */
23
-    public static function isValidType($type)
24
-    {
25
-        return ! empty(static::parseTypes($type));
26
-    }
17
+	/**
18
+	 * Determine whether the given type is valid.
19
+	 *
20
+	 * @param string $type
21
+	 * @return bool
22
+	 */
23
+	public static function isValidType($type)
24
+	{
25
+		return ! empty(static::parseTypes($type));
26
+	}
27 27
 
28
-    /**
29
-     * Parse a phone type into constant's value.
30
-     *
31
-     * @param string|array $types
32
-     * @return array
33
-     */
34
-    protected static function parseTypes($types)
35
-    {
36
-        static::loadTypes();
28
+	/**
29
+	 * Parse a phone type into constant's value.
30
+	 *
31
+	 * @param string|array $types
32
+	 * @return array
33
+	 */
34
+	protected static function parseTypes($types)
35
+	{
36
+		static::loadTypes();
37 37
 
38
-        return Collection::make(is_array($types) ? $types : func_get_args())
39
-                         ->map(function ($type) {
40
-                             // If the type equals a constant's value, just return it.
41
-                             if (is_numeric($type) && in_array($type, static::$types)) {
42
-                                 return (int) $type;
43
-                             }
38
+		return Collection::make(is_array($types) ? $types : func_get_args())
39
+						 ->map(function ($type) {
40
+							 // If the type equals a constant's value, just return it.
41
+							 if (is_numeric($type) && in_array($type, static::$types)) {
42
+								 return (int) $type;
43
+							 }
44 44
 
45
-                             // Otherwise we'll assume the type is the constant's name.
46
-                             return Arr::get(static::$types, strtoupper($type));
47
-                         })
48
-                         ->reject(function ($value) {
49
-                             return is_null($value) || $value === false;
50
-                         })->toArray();
51
-    }
45
+							 // Otherwise we'll assume the type is the constant's name.
46
+							 return Arr::get(static::$types, strtoupper($type));
47
+						 })
48
+						 ->reject(function ($value) {
49
+							 return is_null($value) || $value === false;
50
+						 })->toArray();
51
+	}
52 52
 
53
-    /**
54
-     * Parse a phone type into its string representation.
55
-     *
56
-     * @param string|array $types
57
-     * @return array
58
-     */
59
-    protected static function parseTypesAsStrings($types)
60
-    {
61
-        static::loadTypes();
53
+	/**
54
+	 * Parse a phone type into its string representation.
55
+	 *
56
+	 * @param string|array $types
57
+	 * @return array
58
+	 */
59
+	protected static function parseTypesAsStrings($types)
60
+	{
61
+		static::loadTypes();
62 62
 
63
-        return array_keys(
64
-            array_intersect(
65
-                static::$types,
66
-                static::parseTypes($types)
67
-            )
68
-        );
69
-    }
63
+		return array_keys(
64
+			array_intersect(
65
+				static::$types,
66
+				static::parseTypes($types)
67
+			)
68
+		);
69
+	}
70 70
 
71
-    /**
72
-     * Load all available formats once.
73
-     */
74
-    private static function loadTypes()
75
-    {
76
-        if (! static::$types) {
77
-            static::$types = with(new ReflectionClass(PhoneNumberType::class))->getConstants();
78
-        }
79
-    }
71
+	/**
72
+	 * Load all available formats once.
73
+	 */
74
+	private static function loadTypes()
75
+	{
76
+		if (! static::$types) {
77
+			static::$types = with(new ReflectionClass(PhoneNumberType::class))->getConstants();
78
+		}
79
+	}
80 80
 }
81 81
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -22,7 +22,7 @@  discard block
 block discarded – undo
22 22
      */
23 23
     public static function isValidType($type)
24 24
     {
25
-        return ! empty(static::parseTypes($type));
25
+        return !empty(static::parseTypes($type));
26 26
     }
27 27
 
28 28
     /**
@@ -36,7 +36,7 @@  discard block
 block discarded – undo
36 36
         static::loadTypes();
37 37
 
38 38
         return Collection::make(is_array($types) ? $types : func_get_args())
39
-                         ->map(function ($type) {
39
+                         ->map(function($type) {
40 40
                              // If the type equals a constant's value, just return it.
41 41
                              if (is_numeric($type) && in_array($type, static::$types)) {
42 42
                                  return (int) $type;
@@ -45,7 +45,7 @@  discard block
 block discarded – undo
45 45
                              // Otherwise we'll assume the type is the constant's name.
46 46
                              return Arr::get(static::$types, strtoupper($type));
47 47
                          })
48
-                         ->reject(function ($value) {
48
+                         ->reject(function($value) {
49 49
                              return is_null($value) || $value === false;
50 50
                          })->toArray();
51 51
     }
@@ -73,7 +73,7 @@  discard block
 block discarded – undo
73 73
      */
74 74
     private static function loadTypes()
75 75
     {
76
-        if (! static::$types) {
76
+        if (!static::$types) {
77 77
             static::$types = with(new ReflectionClass(PhoneNumberType::class))->getConstants();
78 78
         }
79 79
     }
Please login to merge, or discard this patch.
src/Validation/Phone.php 2 patches
Indentation   +130 added lines, -130 removed lines patch added patch discarded remove patch
@@ -11,134 +11,134 @@
 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
-        $originalParameters = $parameters;
105
-        $parameters = array_map('strtolower', $parameters);
106
-
107
-        // Discover if an input field was provided. If not, guess the field's name.
108
-        $inputField = Collection::make($parameters)
109
-                                ->intersect(array_keys(Arr::dot($data)))
110
-                                ->first() ?: "${attribute}_country";
111
-
112
-        // Attempt to retrieve the field's value.
113
-        if ($inputCountry = Arr::get($data, $inputField)) {
114
-
115
-            if (static::isValidType($inputField)) {
116
-                throw InvalidParameterException::ambiguous($inputField);
117
-            }
118
-
119
-            // Invalid country field values should just validate to false, and this is exactly what
120
-            // we're getting when simply excluding invalid values.
121
-            // This will also prevent parameter hijacking through the country field.
122
-            if (static::isValidCountryCode($inputCountry)) {
123
-                $parameters[] = $inputCountry;
124
-            }
125
-        }
126
-
127
-        $countries = static::parseCountries($parameters);
128
-        $types = static::parseTypes($parameters);
129
-        $auto = in_array('auto', $parameters);
130
-        $lenient = in_array('lenient', $parameters);
131
-
132
-        // Force developers to write proper code.
133
-        // Since the static parsers return a validated array with preserved keys, we can safely diff against the keys.
134
-        // Unfortunately we can't use $collection->diffKeys() as it's not available yet in earlier 5.* versions.
135
-        $leftovers = array_diff_key($parameters, $countries, $types);
136
-        $leftovers = array_diff($leftovers, ['auto', 'lenient', $inputField]);
137
-
138
-        if (! empty($leftovers)) {
139
-            throw InvalidParameterException::parameters(array_intersect_key($originalParameters, $leftovers));
140
-        }
141
-
142
-        return [$countries, $types, $auto, $lenient, $inputField];
143
-    }
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
+		$originalParameters = $parameters;
105
+		$parameters = array_map('strtolower', $parameters);
106
+
107
+		// Discover if an input field was provided. If not, guess the field's name.
108
+		$inputField = Collection::make($parameters)
109
+								->intersect(array_keys(Arr::dot($data)))
110
+								->first() ?: "${attribute}_country";
111
+
112
+		// Attempt to retrieve the field's value.
113
+		if ($inputCountry = Arr::get($data, $inputField)) {
114
+
115
+			if (static::isValidType($inputField)) {
116
+				throw InvalidParameterException::ambiguous($inputField);
117
+			}
118
+
119
+			// Invalid country field values should just validate to false, and this is exactly what
120
+			// we're getting when simply excluding invalid values.
121
+			// This will also prevent parameter hijacking through the country field.
122
+			if (static::isValidCountryCode($inputCountry)) {
123
+				$parameters[] = $inputCountry;
124
+			}
125
+		}
126
+
127
+		$countries = static::parseCountries($parameters);
128
+		$types = static::parseTypes($parameters);
129
+		$auto = in_array('auto', $parameters);
130
+		$lenient = in_array('lenient', $parameters);
131
+
132
+		// Force developers to write proper code.
133
+		// Since the static parsers return a validated array with preserved keys, we can safely diff against the keys.
134
+		// Unfortunately we can't use $collection->diffKeys() as it's not available yet in earlier 5.* versions.
135
+		$leftovers = array_diff_key($parameters, $countries, $types);
136
+		$leftovers = array_diff($leftovers, ['auto', 'lenient', $inputField]);
137
+
138
+		if (! empty($leftovers)) {
139
+			throw InvalidParameterException::parameters(array_intersect_key($originalParameters, $leftovers));
140
+		}
141
+
142
+		return [$countries, $types, $auto, $lenient, $inputField];
143
+	}
144 144
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -60,7 +60,7 @@  discard block
 block discarded – undo
60 60
                 $phoneNumber = PhoneNumber::make($value, $country);
61 61
 
62 62
                 // Type validation.
63
-                if (! empty($types) && ! $phoneNumber->isOfType($types)) {
63
+                if (!empty($types) && !$phoneNumber->isOfType($types)) {
64 64
                     continue;
65 65
                 }
66 66
 
@@ -135,7 +135,7 @@  discard block
 block discarded – undo
135 135
         $leftovers = array_diff_key($parameters, $countries, $types);
136 136
         $leftovers = array_diff($leftovers, ['auto', 'lenient', $inputField]);
137 137
 
138
-        if (! empty($leftovers)) {
138
+        if (!empty($leftovers)) {
139 139
             throw InvalidParameterException::parameters(array_intersect_key($originalParameters, $leftovers));
140 140
         }
141 141
 
Please login to merge, or discard this patch.