Skip to content
Extraits de code Groupes Projets
Valider 6245e0f7 rédigé par Matthieu Napoli's avatar Matthieu Napoli
Parcourir les fichiers

Created data provider classes in a new Intl component

Less code in `Piwik\Common`, less static classes, more isolated components.
parent 8f342d0f
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
# Piwik Platform Changelog # 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 ## Piwik 2.11.0
......
...@@ -9,6 +9,9 @@ ...@@ -9,6 +9,9 @@
namespace Piwik; namespace Piwik;
use Exception; 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\Plugins\UserCountry\LocationProvider\DefaultProvider;
use Piwik\Tracker; use Piwik\Tracker;
use Piwik\Tracker\Cache as TrackerCache; use Piwik\Tracker\Cache as TrackerCache;
...@@ -750,13 +753,15 @@ class Common ...@@ -750,13 +753,15 @@ class Common
* @see core/DataFiles/Countries.php * @see core/DataFiles/Countries.php
* *
* @return array Array of 3 letter continent codes * @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() public static function getContinentsList()
{ {
require_once PIWIK_INCLUDE_PATH . '/core/DataFiles/Countries.php'; /** @var RegionDataProvider $dataProvider */
$dataProvider = StaticContainer::get('Piwik\Intl\Data\Provider\RegionDataProvider');
$continentsList = $GLOBALS['Piwik_ContinentList']; return $dataProvider->getContinentList();
return $continentsList;
} }
/** /**
...@@ -766,19 +771,15 @@ class Common ...@@ -766,19 +771,15 @@ class Common
* *
* @param bool $includeInternalCodes * @param bool $includeInternalCodes
* @return array Array of (2 letter ISO codes => 3 letter continent code) * @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) public static function getCountriesList($includeInternalCodes = false)
{ {
require_once PIWIK_INCLUDE_PATH . '/core/DataFiles/Countries.php'; /** @var RegionDataProvider $dataProvider */
$dataProvider = StaticContainer::get('Piwik\Intl\Data\Provider\RegionDataProvider');
$countriesList = $GLOBALS['Piwik_CountryList']; return $dataProvider->getCountryList($includeInternalCodes);
$extras = $GLOBALS['Piwik_CountryList_Extras'];
if ($includeInternalCodes) {
return array_merge($countriesList, $extras);
}
return $countriesList;
} }
/** /**
...@@ -789,13 +790,15 @@ class Common ...@@ -789,13 +790,15 @@ class Common
* @return array Array of two letter ISO codes mapped with their associated language names (in English). E.g. * @return array Array of two letter ISO codes mapped with their associated language names (in English). E.g.
* `array('en' => 'English', 'ja' => 'Japanese')`. * `array('en' => 'English', 'ja' => 'Japanese')`.
* @api * @api
*
* @deprecated Use Piwik\Intl\Data\Provider\LanguageDataProvider instead.
* @see \Piwik\Intl\Data\Provider\LanguageDataProvider::getLanguageList()
*/ */
public static function getLanguagesList() public static function getLanguagesList()
{ {
require_once PIWIK_INCLUDE_PATH . '/core/DataFiles/Languages.php'; /** @var LanguageDataProvider $dataProvider */
$dataProvider = StaticContainer::get('Piwik\Intl\Data\Provider\LanguageDataProvider');
$languagesList = $GLOBALS['Piwik_LanguageList']; return $dataProvider->getLanguageList();
return $languagesList;
} }
/** /**
...@@ -806,13 +809,15 @@ class Common ...@@ -806,13 +809,15 @@ class Common
* @return array Array of two letter ISO language codes mapped with two letter ISO country codes: * @return array Array of two letter ISO language codes mapped with two letter ISO country codes:
* `array('fr' => 'fr') // French => France` * `array('fr' => 'fr') // French => France`
* @api * @api
*
* @deprecated Use Piwik\Intl\Data\Provider\LanguageDataProvider instead.
* @see \Piwik\Intl\Data\Provider\LanguageDataProvider::getLanguageToCountryList()
*/ */
public static function getLanguageToCountryList() public static function getLanguageToCountryList()
{ {
require_once PIWIK_INCLUDE_PATH . '/core/DataFiles/LanguageToCountry.php'; /** @var LanguageDataProvider $dataProvider */
$dataProvider = StaticContainer::get('Piwik\Intl\Data\Provider\LanguageDataProvider');
$languagesList = $GLOBALS['Piwik_LanguageToCountry']; return $dataProvider->getLanguageToCountryList();
return $languagesList;
} }
/** /**
......
<?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;
}
}
<?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;
}
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter