b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / dev2.destoffenstraat.com / vendor / magento / framework / Locale /
Filename/home/dev2.destoffenstraat.com/vendor/magento/framework/Locale/Resolver.php
Size3.82 kb
Permissionrw-r--r--
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified07-Jan-2021 21:08
Last accessed23-Aug-2025 01:32
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Locale;

use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Framework\App\DeploymentConfig;
use Magento\Framework\App\ObjectManager;

/**
* Manages locale config information.
*/
class Resolver implements ResolverInterface
{
/**
* Resolver default locale
*/
const DEFAULT_LOCALE = 'en_US';

/**
* Default locale code
*
* @var string
*/
protected $defaultLocale;

/**
* Scope type
*
* @var string
*/
protected $scopeType;

/**
* Locale code
*
* @var string
*/
protected $locale;

/**
* @var ScopeConfigInterface
*/
protected $scopeConfig;

/**
* Emulated locales stack
*
* @var array
*/
protected $emulatedLocales = [];

/**
* @var string
*/
private $defaultLocalePath;

/**
* @var DeploymentConfig
*/
private $deploymentConfig;

/**
* @param ScopeConfigInterface $scopeConfig
* @param string $defaultLocalePath
* @param string $scopeType
* @param mixed $locale
* @param DeploymentConfig|null $deploymentConfig
*/
public function __construct(
ScopeConfigInterface $scopeConfig,
$defaultLocalePath,
$scopeType,
$locale = null,
DeploymentConfig $deploymentConfig = null
) {
$this->scopeConfig = $scopeConfig;
$this->defaultLocalePath = $defaultLocalePath;
$this->scopeType = $scopeType;
$this->deploymentConfig = $deploymentConfig ?: ObjectManager::getInstance()->get(DeploymentConfig::class);
$this->setLocale($locale);
}

/**
* @inheritdoc
*/
public function getDefaultLocalePath()
{
return $this->defaultLocalePath;
}

/**
* @inheritdoc
*/
public function setDefaultLocale($locale)
{
$this->defaultLocale = $locale;
return $this;
}

/**
* @inheritdoc
*/
public function getDefaultLocale()
{
if (!$this->defaultLocale) {
$locale = false;
if ($this->deploymentConfig->isAvailable() && $this->deploymentConfig->isDbAvailable()) {
$locale = $this->scopeConfig->getValue($this->getDefaultLocalePath(), $this->scopeType);
}
if (!$locale) {
$locale = self::DEFAULT_LOCALE;
}
$this->defaultLocale = $locale;
}
return $this->defaultLocale;
}

/**
* @inheritdoc
*/
public function setLocale($locale = null)
{
if ($locale !== null && is_string($locale)) {
$this->locale = $locale;
} else {
$this->locale = $this->getDefaultLocale();
}
return $this;
}

/**
* @inheritdoc
*/
public function getLocale()
{
if ($this->locale === null) {
$this->setLocale();
}
return $this->locale;
}

/**
* @inheritdoc
*/
public function emulate($scopeId)
{
$result = null;
if ($scopeId) {
$this->emulatedLocales[] = $this->getLocale();
$this->locale = $this->scopeConfig->getValue(
$this->getDefaultLocalePath(),
$this->scopeType,
$scopeId
);
$result = $this->locale;
} else {
$this->emulatedLocales[] = false;
}
return $result;
}

/**
* @inheritdoc
*/
public function revert()
{
$result = null;
$localeCode = array_pop($this->emulatedLocales);
if ($localeCode) {
$this->locale = $localeCode;
$result = $this->locale;
}
return $result;
}
}