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 / setup / src / Magento / Setup / Module / I18n /
Filename/home/dev2.destoffenstraat.com/setup/src/Magento/Setup/Module/I18n/Context.php
Size3.18 kb
Permissionrw-r--r--
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified28-Jan-2025 06:45
Last accessed24-Aug-2025 05:48
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Setup\Module\I18n;

use Magento\Framework\App\Filesystem\DirectoryList;
use Magento\Framework\Component\ComponentRegistrar;
use Magento\Framework\Filesystem;

/**
* Context
*/
class Context
{
/**
* Locale directory
*/
const LOCALE_DIRECTORY = 'i18n';

/**#@+
* Context info
*/
const CONTEXT_TYPE_MODULE = 'module';

const CONTEXT_TYPE_THEME = 'theme';

const CONTEXT_TYPE_LIB = 'lib';

/**#@-*/

/**#@-*/
private $componentRegistrar;

/**
* Constructor
*
* @param ComponentRegistrar $componentRegistrar
*/
public function __construct(ComponentRegistrar $componentRegistrar)
{
$this->componentRegistrar = $componentRegistrar;
}

/**
* Get context from file path in array(<context type>, <context value>) format
* - for module: <Namespace>_<module name>
* - for theme: <area>/<theme name>
* - for pub: relative path to file
*
* @param string $path
* @return array
* @throws \InvalidArgumentException
*/
public function getContextByPath($path)
{
if ($value = $this->getComponentName(ComponentRegistrar::MODULE, $path)) {
$type = self::CONTEXT_TYPE_MODULE;
} elseif ($value = $this->getComponentName(ComponentRegistrar::THEME, $path)) {
$type = self::CONTEXT_TYPE_THEME;
} elseif ($value = strstr($path, '/lib/web/')) {
$type = self::CONTEXT_TYPE_LIB;
$value = ltrim($value, '/');
} else {
throw new \InvalidArgumentException(sprintf('Invalid path given: "%s".', $path));
}
return [$type, $value];
}

/**
* Try to get component name by path, return false if not found
*
* @param string $componentType
* @param string $path
* @return bool|string
*/
private function getComponentName($componentType, $path)
{
foreach ($this->componentRegistrar->getPaths($componentType) as $componentName => $componentDir) {
$componentDir .= '/';
if (strpos($path, $componentDir) !== false) {
return $componentName;
}
}
return false;
}

/**
* Get paths by context
*
* @param string $type
* @param array $value
* @return string|null
* @throws \InvalidArgumentException
*/
public function buildPathToLocaleDirectoryByContext($type, $value)
{
switch ($type) {
case self::CONTEXT_TYPE_MODULE:
$path = $this->componentRegistrar->getPath(ComponentRegistrar::MODULE, $value);
break;
case self::CONTEXT_TYPE_THEME:
$path = $this->componentRegistrar->getPath(ComponentRegistrar::THEME, $value);
break;
case self::CONTEXT_TYPE_LIB:
$path = BP . '/lib/web';
break;
default:
throw new \InvalidArgumentException(sprintf('Invalid context given: "%s".', $type));
}

return (null === $path) ? null : $path . '/' . self::LOCALE_DIRECTORY . '/';
}
}