diff options
-rw-r--r-- | CHANGELOG.md | 11 | ||||
-rw-r--r-- | core/Common.php | 49 | ||||
-rw-r--r-- | core/Intl/Data/Provider/LanguageDataProvider.php | 45 | ||||
-rw-r--r-- | core/Intl/Data/Provider/RegionDataProvider.php | 49 |
4 files changed, 131 insertions, 23 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index ddcb2ee75b..47224629c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ # Piwik Platform Changelog -This is a changelog for Piwik platform developers. All changes for our HTTP API's, Plugins, Themes, etc will be listed here. +This is a changelog for Piwik platform developers. All changes for our HTTP API's, Plugins, Themes, etc will be listed here. + +## Piwik 2.11.0 + +### Deprecations +* The following methods of `Piwik\Common` have been deprecated in favor of the new `Piwik\Intl` component: + * `getContinentsList()`: use `RegionDataProvider::getContinentList()` + * `getCountriesList()`: use `RegionDataProvider::getCountryList()` + * `getLanguagesList()`: use `LanguageDataProvider::getLanguageList()` + * `getLanguageToCountryList()`: use `LanguageDataProvider::getLanguageToCountryList()` ## Piwik 2.11.0 diff --git a/core/Common.php b/core/Common.php index ac913d97ea..dcadaa2d49 100644 --- a/core/Common.php +++ b/core/Common.php @@ -9,6 +9,9 @@ namespace Piwik; use Exception; +use Piwik\Container\StaticContainer; +use Piwik\Intl\Data\Provider\LanguageDataProvider; +use Piwik\Intl\Data\Provider\RegionDataProvider; use Piwik\Plugins\UserCountry\LocationProvider\DefaultProvider; use Piwik\Tracker; use Piwik\Tracker\Cache as TrackerCache; @@ -750,13 +753,15 @@ class Common * @see core/DataFiles/Countries.php * * @return array Array of 3 letter continent codes + * + * @deprecated Use Piwik\Intl\Data\Provider\RegionDataProvider instead. + * @see \Piwik\Intl\Data\Provider\RegionDataProvider::getContinentList() */ public static function getContinentsList() { - require_once PIWIK_INCLUDE_PATH . '/core/DataFiles/Countries.php'; - - $continentsList = $GLOBALS['Piwik_ContinentList']; - return $continentsList; + /** @var RegionDataProvider $dataProvider */ + $dataProvider = StaticContainer::get('Piwik\Intl\Data\Provider\RegionDataProvider'); + return $dataProvider->getContinentList(); } /** @@ -766,19 +771,15 @@ class Common * * @param bool $includeInternalCodes * @return array Array of (2 letter ISO codes => 3 letter continent code) + * + * @deprecated Use Piwik\Intl\Data\Provider\RegionDataProvider instead. + * @see \Piwik\Intl\Data\Provider\RegionDataProvider::getCountryList() */ public static function getCountriesList($includeInternalCodes = false) { - require_once PIWIK_INCLUDE_PATH . '/core/DataFiles/Countries.php'; - - $countriesList = $GLOBALS['Piwik_CountryList']; - $extras = $GLOBALS['Piwik_CountryList_Extras']; - - if ($includeInternalCodes) { - return array_merge($countriesList, $extras); - } - - return $countriesList; + /** @var RegionDataProvider $dataProvider */ + $dataProvider = StaticContainer::get('Piwik\Intl\Data\Provider\RegionDataProvider'); + return $dataProvider->getCountryList($includeInternalCodes); } /** @@ -789,13 +790,15 @@ class Common * @return array Array of two letter ISO codes mapped with their associated language names (in English). E.g. * `array('en' => 'English', 'ja' => 'Japanese')`. * @api + * + * @deprecated Use Piwik\Intl\Data\Provider\LanguageDataProvider instead. + * @see \Piwik\Intl\Data\Provider\LanguageDataProvider::getLanguageList() */ public static function getLanguagesList() { - require_once PIWIK_INCLUDE_PATH . '/core/DataFiles/Languages.php'; - - $languagesList = $GLOBALS['Piwik_LanguageList']; - return $languagesList; + /** @var LanguageDataProvider $dataProvider */ + $dataProvider = StaticContainer::get('Piwik\Intl\Data\Provider\LanguageDataProvider'); + return $dataProvider->getLanguageList(); } /** @@ -806,13 +809,15 @@ class Common * @return array Array of two letter ISO language codes mapped with two letter ISO country codes: * `array('fr' => 'fr') // French => France` * @api + * + * @deprecated Use Piwik\Intl\Data\Provider\LanguageDataProvider instead. + * @see \Piwik\Intl\Data\Provider\LanguageDataProvider::getLanguageToCountryList() */ public static function getLanguageToCountryList() { - require_once PIWIK_INCLUDE_PATH . '/core/DataFiles/LanguageToCountry.php'; - - $languagesList = $GLOBALS['Piwik_LanguageToCountry']; - return $languagesList; + /** @var LanguageDataProvider $dataProvider */ + $dataProvider = StaticContainer::get('Piwik\Intl\Data\Provider\LanguageDataProvider'); + return $dataProvider->getLanguageToCountryList(); } /** diff --git a/core/Intl/Data/Provider/LanguageDataProvider.php b/core/Intl/Data/Provider/LanguageDataProvider.php new file mode 100644 index 0000000000..8369d8b1a7 --- /dev/null +++ b/core/Intl/Data/Provider/LanguageDataProvider.php @@ -0,0 +1,45 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Intl\Data\Provider; + +/** + * Provides language data. + */ +class LanguageDataProvider +{ + /** + * Returns the list of valid language codes. + * + * @return string[] Array of 2 letter ISO code => language name (in english). + * E.g. `array('en' => 'English', 'ja' => 'Japanese')`. + * @api + */ + public static function getLanguageList() + { + require_once PIWIK_INCLUDE_PATH . '/core/DataFiles/Languages.php'; + + $languagesList = $GLOBALS['Piwik_LanguageList']; + return $languagesList; + } + + /** + * Returns the list of language to country mappings. + * + * @return string[] Array of 2 letter ISO language code => 2 letter ISO country code. + * E.g. `array('fr' => 'fr') // French => France`. + * @api + */ + public static function getLanguageToCountryList() + { + require_once PIWIK_INCLUDE_PATH . '/core/DataFiles/LanguageToCountry.php'; + + $languagesList = $GLOBALS['Piwik_LanguageToCountry']; + return $languagesList; + } +} diff --git a/core/Intl/Data/Provider/RegionDataProvider.php b/core/Intl/Data/Provider/RegionDataProvider.php new file mode 100644 index 0000000000..b47aa4ab9c --- /dev/null +++ b/core/Intl/Data/Provider/RegionDataProvider.php @@ -0,0 +1,49 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Intl\Data\Provider; + +/** + * Provides region related data (continents, countries, etc.). + */ +class RegionDataProvider +{ + /** + * Returns the list of continent codes. + * + * @return string[] Array of 3 letter continent codes + * @api + */ + public function getContinentList() + { + require_once PIWIK_INCLUDE_PATH . '/core/DataFiles/Countries.php'; + + return $GLOBALS['Piwik_ContinentList']; + } + + /** + * Returns the list of valid country codes. + * + * @param bool $includeInternalCodes + * @return string[] Array of 2 letter country ISO codes => 3 letter continent code + * @api + */ + public static function getCountryList($includeInternalCodes = false) + { + require_once PIWIK_INCLUDE_PATH . '/core/DataFiles/Countries.php'; + + $countriesList = $GLOBALS['Piwik_CountryList']; + $extras = $GLOBALS['Piwik_CountryList_Extras']; + + if ($includeInternalCodes) { + return array_merge($countriesList, $extras); + } + + return $countriesList; + } +} |