Files
ltsecurityinc/app/code/Plumrocket/Base/Helper/AbstractConfig.php
T

133 lines
4.3 KiB
PHP
Executable File

<?php
/**
* @package Plumrocket_Base
* @copyright Copyright (c) 2020 Plumrocket Inc. (https://plumrocket.com)
* @license https://plumrocket.com/license/ End-user License Agreement
*/
declare(strict_types=1);
namespace Plumrocket\Base\Helper;
use Magento\Framework\App\Helper\Context;
use Magento\Framework\App\ObjectManager;
use Plumrocket\Base\Api\GetExtensionInformationInterface;
/**
* Base class for extension's Helper/Config
*
* @since 2.3.0
* @deprecated since 2.6.0
* @see \Plumrocket\Base\Model\ConfigUtils
*/
abstract class AbstractConfig extends ConfigUtils
{
/**
* @deprecated since 2.5.0 - it is better to use "XML_PATH_" constants, see our docs
*/
const SECTION_ID = '';
/**
* @deprecated since 2.5.0 - it is better to use "XML_PATH_" constants, see our docs
*/
const GROUP_GENERAL = 'general';
/**
* @var \Plumrocket\Base\Api\GetExtensionInformationInterface
*/
protected $getExtensionInformation;
/**
* @param \Magento\Framework\App\Helper\Context $context
* @param \Plumrocket\Base\Api\GetExtensionInformationInterface|null $getExtensionInformation
*/
public function __construct(
Context $context,
?GetExtensionInformationInterface $getExtensionInformation = null
) {
parent::__construct($context);
$this->getExtensionInformation = $getExtensionInformation ?: ObjectManager::getInstance()->get(
GetExtensionInformationInterface::class
);
}
/**
* All modules must return his status.
*
* There are four ways to do this:
* 1. Rewrite method and write own logic (recommended)
* 3. Rewrite method and return true (recommended for free modules)
* 4. Use \Plumrocket\Base\Helper\AbstractConfig::isModuleEnabledInConfig method (not recommended)
*
* @param null $store
* @param null $scope
* @return bool
*/
public function isModuleEnabled($store = null, $scope = null): bool
{
$configPath = $this->getExtensionInformation->execute($this->_getModuleName())->getIsEnabledFieldConfigPath();
if (! $configPath) {
throw new \LogicException('You must specify enabled field config path via DI or rewrite method');
}
return (bool) $this->getConfig($configPath, $store, $scope);
}
/**
* Can be used for certain modules with config path like "SECTION_ID/general/enabled"
* @deprecated since 2.3.7 - it is better to have path to enabled field in one place and it here
* @see \Plumrocket\Base\Model\Extensions\Information::IS_ENABLED_FIELD_CONFIG_PATH
*
* @param null $store
* @param null $scope
* @return bool
*/
protected function isModuleEnabledInConfig($store = null, $scope = null): bool
{
return (bool) $this->getConfig(
implode('/', [static::SECTION_ID, static::GROUP_GENERAL, 'enabled']),
$store,
$scope
);
}
/**
* Receive magento config value
* @deprecated since 2.3.7 - it is better to use constants, see our docs
*
* @param string $group second part of the path, e.g. "general"
* @param string $path third part of the path, e.g. "enabled"
* @param string|int|null $scopeCode
* @param string|null $scope
* @return mixed
*/
public function getConfigByGroup($group, $path, $scopeCode = null, $scope = null)
{
return $this->getConfig(
implode('/', [static::SECTION_ID, $group, $path]),
$scopeCode,
$scope
);
}
/**
* Receive magento config value
* Used for deep paths, like "pr_base/statistic/usage/enabled"
* @deprecated since 2.3.7 - it is better to use constants, see our docs
*
* @param string $group second part of the path
* @param string $subGroup third part of the path
* @param string $path fourth part of the path
* @param string|int|null $scopeCode
* @param string|null $scope
* @return mixed
*/
public function getConfigBySubGroup($group, $subGroup, $path, $scopeCode = null, $scope = null)
{
return $this->getConfig(
implode('/', [static::SECTION_ID, $group, $subGroup, $path]),
$scopeCode,
$scope
);
}
}