Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Protected Member Functions | Protected Attributes
NamespaceResolver Class Reference

Public Member Functions

 __construct (\Magento\Framework\Module\ModuleListInterface $moduleList)
 
 determineOmittedNamespace ($name, $asFullModuleName=false)
 

Protected Member Functions

 prepareModuleNamespaces ()
 
 prepareName ($name)
 

Protected Attributes

 $moduleNamespaces
 
 $moduleList
 

Detailed Description

Definition at line 8 of file NamespaceResolver.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( \Magento\Framework\Module\ModuleListInterface  $moduleList)
Parameters
\Magento\Framework\Module\ModuleListInterface$moduleList

Definition at line 25 of file NamespaceResolver.php.

26  {
27  $this->moduleList = $moduleList;
28  }

Member Function Documentation

◆ determineOmittedNamespace()

determineOmittedNamespace (   $name,
  $asFullModuleName = false 
)

Determine whether provided name begins from any available modules, according to namespaces priority If matched, returns as the matched module "factory" name or a fully qualified module name

Parameters
string$name
bool$asFullModuleName
Returns
string

Definition at line 38 of file NamespaceResolver.php.

39  {
40  $this->prepareModuleNamespaces();
41  $name = $this->prepareName($name);
42 
43  $partsNum = count($name);
44  $defaultNamespaceFlag = false;
45  foreach ($this->moduleNamespaces as $namespaceName => $namespace) {
46  // assume the namespace is omitted (default namespace only, which comes first)
47  if ($defaultNamespaceFlag === false) {
48  $defaultNamespaceFlag = true;
49  $defaultNS = $namespaceName . '_' . $name[0];
50  if (isset($namespace[$defaultNS])) {
51  return $asFullModuleName ? $namespace[$defaultNS] : $name[0]; // return omitted as well
52  }
53  }
54  // assume namespace is qualified
55  if (isset($name[1])) {
56  $fullNS = $name[0] . '_' . $name[1];
57  if (2 <= $partsNum && isset($namespace[$fullNS])) {
58  return $asFullModuleName ? $namespace[$fullNS] : $fullNS;
59  }
60  }
61  }
62  return '';
63  }
if(!isset($_GET['name'])) $name
Definition: log.php:14

◆ prepareModuleNamespaces()

prepareModuleNamespaces ( )
protected

Prepare module namespaces

Returns
void

Definition at line 70 of file NamespaceResolver.php.

71  {
72  if (null === $this->moduleNamespaces) {
73  $this->moduleNamespaces = [];
74  foreach ($this->moduleList->getNames() as $moduleName) {
75  $module = strtolower($moduleName);
76  $this->moduleNamespaces[substr($module, 0, strpos($module, '_'))][$module] = $moduleName;
77  }
78  }
79  }

◆ prepareName()

prepareName (   $name)
protected

Prepare name

Parameters
string$name
Returns
array

Definition at line 87 of file NamespaceResolver.php.

88  {
89  $explodeString = strpos($name, '\\') === false ? '_' : '\\';
90  return explode($explodeString, strtolower($name));
91  }
if(!isset($_GET['name'])) $name
Definition: log.php:14

Field Documentation

◆ $moduleList

$moduleList
protected

Definition at line 20 of file NamespaceResolver.php.

◆ $moduleNamespaces

$moduleNamespaces
protected

Definition at line 15 of file NamespaceResolver.php.


The documentation for this class was generated from the following file: