Test Failed
Push — master ( b9b499...9e2edc )
by Adam
12:31
created

Locale::countryCodeToLocale()   A

Complexity

Conditions 4
Paths 2

Size

Total Lines 16
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
rs 9.2
c 0
b 0
f 0
cc 4
eloc 10
nc 2
nop 2
1
<?php
2
/**
3
 * Locale.php
4
 *
5
 * @copyright      More in license.md
6
 * @license        http://www.ipublikuj.eu
7
 * @author         Adam Kadlec <[email protected]>
8
 * @package        iPublikuj:FormPhone!
9
 * @subpackage     Locale
10
 * @since          1.0.4
11
 *
12
 * @date           20.08.16
13
 */
14
15
declare(strict_types = 1);
16
17
namespace IPub\FormPhone\Locale;
18
19
use Giggsey;
20
21
/**
22
 * Locale helper
23
 *
24
 * @package        iPublikuj:FormPhone!
25
 * @subpackage     Locale
26
 *
27
 * @author         Adam Kadlec <[email protected]>
28
 */
29
class Locale extends Giggsey\Locale\Locale
30
{
31
	/**
32
	 * @link http://stackoverflow.com/a/10375234/403165
33
	 *
34
	 * @param string $countryCode
35
	 * @param string $languageCode
36
	 *
37
	 * @return string|NULL
38
	 */
39
	public static function countryCodeToLocale(string $countryCode, string $languageCode = '')
40
	{
41
		$locale = 'en-' . $countryCode;
42
		$localeRegion = locale_get_region($locale);
43
		$localeLanguage = locale_get_primary_language($locale);
44
		$localeArray = [
45
			'language' => $localeLanguage,
46
			'region'   => $localeRegion,
47
		];
48
49
		if (strtoupper($countryCode) === $localeRegion && ($languageCode === '' || strtolower($languageCode) === $localeLanguage)) {
50
			return locale_compose($localeArray);
51
		}
52
53
		return NULL;
54
	}
55
}
56