Generates class chains for extended classes by modules. IMPORTANT: Due to the way the shop is prepared for testing, you must not use Registry::getConfig() in this class. oxNew will enter in an endless loop, if you try to do that.
◆ __construct()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::__construct |
( |
|
$moduleVariablesLocator | ) |
|
- Parameters
-
\OxidEsales\Eshop\Core\Module\ModuleVariablesLocator | $moduleVariablesLocator | |
◆ backwardsCompatibleCreateClassExtension()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::backwardsCompatibleCreateClassExtension |
( |
|
$parentClass, |
|
|
|
$moduleClassPath |
|
) |
| |
|
private |
Backwards compatible self::createClassExtension
- Parameters
-
string | $parentClass | Name of the parent class |
string | $moduleClassPath | Path of the module class as it is defined in metadata.php 'extend' section. This is not a valid file system path |
- Returns
- bool
- Deprecated:
- since v6.0 (2017-03-14); This method will be removed in the future.
◆ cleanModuleFromClassChain()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::cleanModuleFromClassChain |
( |
|
$moduleId, |
|
|
array |
$classChain |
|
) |
| |
Clean classes from chain for given module id. Classes might be in module chain by path (old way) or by module namespace(new way). This function removes all classes from class chain for classes inside a deactivated module's directory.
- Parameters
-
string | $moduleId | |
array | $classChain | |
- Returns
- array
◆ createClassChain()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::createClassChain |
( |
|
$className, |
|
|
|
$classAlias = null |
|
) |
| |
Creates given class chains.
- Parameters
-
string | $className | Class name. |
string | $classAlias | Class alias, used for searching module extensions. Class is used if no alias given. |
- Returns
- string
◆ createClassExtension()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::createClassExtension |
( |
|
$parentClass, |
|
|
|
$moduleClass |
|
) |
| |
|
protected |
Checks, if a given class can be loaded and create an alias for _parent. If the class cannot be loaded, some error handling is done.
- See also
- self::onModuleExtensionCreationError
-
self::handleSpecialCases
e.g. class suboutput1_parent extends oxoutput {} class suboutput2_parent extends suboutput1 {}
- Parameters
-
string | $parentClass | |
string | $moduleClass | |
- Exceptions
-
◆ createClassExtensions()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::createClassExtensions |
( |
|
$classChain, |
|
|
|
$baseClass |
|
) |
| |
|
protected |
Creates middle classes if needed.
- Parameters
-
array | $classChain | Module names |
string | $baseClass | Oxid base class |
- Exceptions
-
◆ disableModule()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::disableModule |
( |
|
$modulePath | ) |
|
Disables module, adds to aDisabledModules config.
- Parameters
-
string | $modulePath | Full module path |
- Returns
- bool
◆ filterInactiveExtensions()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::filterInactiveExtensions |
( |
|
$classChain | ) |
|
Checks if module is disabled, added to aDisabledModules config.
- Parameters
-
- Returns
- array
◆ getActiveChain()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::getActiveChain |
( |
|
$className, |
|
|
|
$classAlias = null |
|
) |
| |
Assembles class chains.
- Parameters
-
string | $className | Class name. |
string | $classAlias | Class alias, used for searching module extensions. Class is used if no alias given. |
- Returns
- array
◆ getConfigBlDoNotDisableModuleOnError()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::getConfigBlDoNotDisableModuleOnError |
( |
| ) |
|
|
protected |
◆ getDisabledModuleIds()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::getDisabledModuleIds |
( |
| ) |
|
Get Ids of all deactivated module. If none are deactivated, returns an empty array.
- Returns
- array
◆ getFullChain()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::getFullChain |
( |
|
$className, |
|
|
|
$classAlias |
|
) |
| |
Build full class chain.
- Parameters
-
string | $className | |
string | $classAlias | |
- Returns
- array
◆ getModuleDirectoryByModuleId()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::getModuleDirectoryByModuleId |
( |
|
$moduleId | ) |
|
SPIKE: extract function to match moduleId with installation path Example: aModulePaths = array('MyTestModule' => 'myvendor/mymodule', 'oepaypal' => 'oe/oepaypal')
TODD: Think about case sensitivity issues
Get module path relative to source/modules for given module id.
- Parameters
-
- Returns
- string
◆ getModulesArray()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::getModulesArray |
( |
\OxidEsales\Eshop\Core\Module\ModuleVariablesLocator |
$variablesLocator | ) |
|
|
protected |
Getter for module array.
- Parameters
-
\OxidEsales\Eshop\Core\Module\ModuleVariablesLocator | $variablesLocator | |
- Returns
- array
◆ getModuleVariablesLocator()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::getModuleVariablesLocator |
( |
| ) |
|
◆ handleSpecialCases()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::handleSpecialCases |
( |
|
$requestedClass | ) |
|
|
protected |
Special case is when oxconfig class is extended: we cant call "_disableModule" as it requires valid config object but we can't create it as module class extending it does not exist. So we will use original oxConfig object instead.
- Parameters
-
string | $requestedClass | Class, for which extension chain was generated. |
◆ isUnitTest()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::isUnitTest |
( |
| ) |
|
|
protected |
Conveniance method for tests
- Returns
- bool
◆ onModuleExtensionCreationError()
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::onModuleExtensionCreationError |
( |
|
$moduleClass | ) |
|
|
protected |
If blDoNotDisableModuleOnError config value is false, disables bad module. To avoid problems with unit tests it only throw an exception if class does not exist.
- Parameters
-
- Exceptions
-
◆ $moduleVariablesLocator
OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator::$moduleVariablesLocator |
|
private |
The documentation for this class was generated from the following file: