From 2f35f52bfe7c0311a50c4e5e91d7dc78f08bad2a Mon Sep 17 00:00:00 2001 From: Tiago Sampaio Date: Mon, 7 Jun 2021 15:09:32 -0300 Subject: [PATCH 1/5] Improving the code readability by importing the classes. --- app/code/Magento/Config/Model/Config.php | 102 +++++++++++++---------- 1 file changed, 58 insertions(+), 44 deletions(-) diff --git a/app/code/Magento/Config/Model/Config.php b/app/code/Magento/Config/Model/Config.php index eda02612ded1a..3b3d1b4b0681a 100644 --- a/app/code/Magento/Config/Model/Config.php +++ b/app/code/Magento/Config/Model/Config.php @@ -5,14 +5,28 @@ */ namespace Magento\Config\Model; +use Exception; +use Magento\Config\Model\Config\Loader; use Magento\Config\Model\Config\Reader\Source\Deployed\SettingChecker; +use Magento\Config\Model\Config\Structure; use Magento\Config\Model\Config\Structure\Element\Group; use Magento\Config\Model\Config\Structure\Element\Field; +use Magento\Framework\App\Config\ReinitableConfigInterface; +use Magento\Framework\App\Config\ScopeConfigInterface; +use Magento\Framework\App\Config\ValueFactory; +use Magento\Framework\App\Config\ValueInterface; use Magento\Framework\App\ObjectManager; use Magento\Framework\App\ScopeInterface; use Magento\Framework\App\ScopeResolverPool; +use Magento\Framework\DataObject; +use Magento\Framework\DB\Transaction; +use Magento\Framework\DB\TransactionFactory; +use Magento\Framework\Event\ManagerInterface; +use Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface; +use Magento\Framework\Simplexml\Element; use Magento\Store\Model\ScopeInterface as StoreScopeInterface; use Magento\Store\Model\ScopeTypeNormalizer; +use Magento\Store\Model\StoreManagerInterface; /** * Backend config model @@ -36,7 +50,7 @@ * @method string getScopeCode() * @method void setScopeCode(string $scopeCode) */ -class Config extends \Magento\Framework\DataObject +class Config extends DataObject { /** * Config data for sections @@ -48,54 +62,54 @@ class Config extends \Magento\Framework\DataObject /** * Event dispatcher * - * @var \Magento\Framework\Event\ManagerInterface + * @var ManagerInterface */ protected $_eventManager; /** * System configuration structure * - * @var \Magento\Config\Model\Config\Structure + * @var Structure */ protected $_configStructure; /** * Application config * - * @var \Magento\Framework\App\Config\ScopeConfigInterface + * @var ScopeConfigInterface */ protected $_appConfig; /** * Global factory * - * @var \Magento\Framework\App\Config\ScopeConfigInterface + * @var ScopeConfigInterface */ protected $_objectFactory; /** * TransactionFactory * - * @var \Magento\Framework\DB\TransactionFactory + * @var TransactionFactory */ protected $_transactionFactory; /** * Config data loader * - * @var \Magento\Config\Model\Config\Loader + * @var Loader */ protected $_configLoader; /** * Config data factory * - * @var \Magento\Framework\App\Config\ValueFactory + * @var ValueFactory */ protected $_configValueFactory; /** - * @var \Magento\Store\Model\StoreManagerInterface + * @var StoreManagerInterface */ protected $_storeManager; @@ -115,38 +129,38 @@ class Config extends \Magento\Framework\DataObject private $scopeTypeNormalizer; /** - * @var \Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface + * @var PoisonPillPutInterface */ private $pillPut; /** - * @param \Magento\Framework\App\Config\ReinitableConfigInterface $config - * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param \Magento\Config\Model\Config\Structure $configStructure - * @param \Magento\Framework\DB\TransactionFactory $transactionFactory - * @param \Magento\Config\Model\Config\Loader $configLoader - * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory - * @param \Magento\Store\Model\StoreManagerInterface $storeManager + * @param ReinitableConfigInterface $config + * @param ManagerInterface $eventManager + * @param Structure $configStructure + * @param TransactionFactory $transactionFactory + * @param Loader $configLoader + * @param ValueFactory $configValueFactory + * @param StoreManagerInterface $storeManager * @param Config\Reader\Source\Deployed\SettingChecker|null $settingChecker * @param array $data * @param ScopeResolverPool|null $scopeResolverPool * @param ScopeTypeNormalizer|null $scopeTypeNormalizer - * @param \Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface|null $pillPut + * @param PoisonPillPutInterface|null $pillPut * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( - \Magento\Framework\App\Config\ReinitableConfigInterface $config, - \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\Config\Model\Config\Structure $configStructure, - \Magento\Framework\DB\TransactionFactory $transactionFactory, - \Magento\Config\Model\Config\Loader $configLoader, - \Magento\Framework\App\Config\ValueFactory $configValueFactory, - \Magento\Store\Model\StoreManagerInterface $storeManager, + ReinitableConfigInterface $config, + ManagerInterface $eventManager, + Structure $configStructure, + TransactionFactory $transactionFactory, + Loader $configLoader, + ValueFactory $configValueFactory, + StoreManagerInterface $storeManager, SettingChecker $settingChecker = null, array $data = [], ScopeResolverPool $scopeResolverPool = null, ScopeTypeNormalizer $scopeTypeNormalizer = null, - \Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface $pillPut = null + PoisonPillPutInterface $pillPut = null ) { parent::__construct($data); $this->_eventManager = $eventManager; @@ -162,8 +176,8 @@ public function __construct( ?? ObjectManager::getInstance()->get(ScopeResolverPool::class); $this->scopeTypeNormalizer = $scopeTypeNormalizer ?? ObjectManager::getInstance()->get(ScopeTypeNormalizer::class); - $this->pillPut = $pillPut ?: \Magento\Framework\App\ObjectManager::getInstance() - ->get(\Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface::class); + $this->pillPut = $pillPut + ?? ObjectManager::getInstance()->get(PoisonPillPutInterface::class); } /** @@ -171,7 +185,7 @@ public function __construct( * * Require set: section, website, store and groups * - * @throws \Exception + * @throws Exception * @return $this */ public function save() @@ -186,9 +200,9 @@ public function save() $oldConfig = $this->_getConfig(true); - /** @var \Magento\Framework\DB\Transaction $deleteTransaction */ + /** @var Transaction $deleteTransaction */ $deleteTransaction = $this->_transactionFactory->create(); - /** @var \Magento\Framework\DB\Transaction $saveTransaction */ + /** @var Transaction $saveTransaction */ $saveTransaction = $this->_transactionFactory->create(); $changedPaths = []; @@ -227,7 +241,7 @@ public function save() 'changed_paths' => $changedPaths, ] ); - } catch (\Exception $e) { + } catch (Exception $e) { // re-init configuration $this->_appConfig->reinit(); throw $e; @@ -250,7 +264,7 @@ private function getOriginalFieldId(Group $group, string $fieldId): string if ($group->shouldCloneFields()) { $cloneModel = $group->getCloneModel(); - /** @var \Magento\Config\Model\Config\Structure\Element\Field $field */ + /** @var Field $field */ foreach ($group->getChildren() as $field) { foreach ($cloneModel->getPrefixes() as $prefix) { if ($prefix['field'] . $field->getId() === $fieldId) { @@ -274,7 +288,7 @@ private function getOriginalFieldId(Group $group, string $fieldId): string */ private function getField(string $sectionId, string $groupId, string $fieldId): Field { - /** @var \Magento\Config\Model\Config\Structure\Element\Group $group */ + /** @var Group $group */ $group = $this->_configStructure->getElement($sectionId . '/' . $groupId); $fieldPath = $group->getPath() . '/' . $this->getOriginalFieldId($group, $fieldId); $field = $this->_configStructure->getElement($fieldPath); @@ -386,8 +400,8 @@ private function getChangedPaths( * @param string $sectionPath * @param array $extraOldGroups * @param array $oldConfig - * @param \Magento\Framework\DB\Transaction $saveTransaction - * @param \Magento\Framework\DB\Transaction $deleteTransaction + * @param Transaction $saveTransaction + * @param Transaction $deleteTransaction * @return void * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) @@ -399,13 +413,13 @@ protected function _processGroup( $sectionPath, array &$extraOldGroups, array &$oldConfig, - \Magento\Framework\DB\Transaction $saveTransaction, - \Magento\Framework\DB\Transaction $deleteTransaction + Transaction $saveTransaction, + Transaction $deleteTransaction ) { $groupPath = $sectionPath . '/' . $groupId; if (isset($groupData['fields'])) { - /** @var \Magento\Config\Model\Config\Structure\Element\Group $group */ + /** @var Group $group */ $group = $this->_configStructure->getElement($groupPath); // set value for group field entry by fieldname @@ -427,7 +441,7 @@ protected function _processGroup( } $field = $this->getField($sectionPath, $groupId, $fieldId); - /** @var \Magento\Framework\App\Config\ValueInterface $backendModel */ + /** @var ValueInterface $backendModel */ $backendModel = $field->hasBackendModel() ? $field->getBackendModel() : $this->_configValueFactory->create(); @@ -655,12 +669,12 @@ protected function _getConfig($full = true) /** * Set correct scope if isSingleStoreMode = true * - * @param \Magento\Config\Model\Config\Structure\Element\Field $fieldConfig - * @param \Magento\Framework\App\Config\ValueInterface $dataObject + * @param Field $fieldConfig + * @param ValueInterface $dataObject * @return void */ protected function _checkSingleStoreMode( - \Magento\Config\Model\Config\Structure\Element\Field $fieldConfig, + Field $fieldConfig, $dataObject ) { $isSingleStoreMode = $this->_storeManager->isSingleStoreMode(); @@ -683,7 +697,7 @@ protected function _checkSingleStoreMode( * @param string $path * @param null|bool $inherit * @param null|array $configData - * @return \Magento\Framework\Simplexml\Element + * @return Element */ public function getConfigDataValue($path, &$inherit = null, $configData = null) { From 490fb0447fc91ecf466c15c2af0366cf0f6f5242 Mon Sep 17 00:00:00 2001 From: T Prasanna Date: Tue, 2 Jul 2024 12:23:35 +0530 Subject: [PATCH 2/5] fixed static failure --- app/code/Magento/Config/Model/Config.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/code/Magento/Config/Model/Config.php b/app/code/Magento/Config/Model/Config.php index ec945fd326590..6bebcbb0d2607 100644 --- a/app/code/Magento/Config/Model/Config.php +++ b/app/code/Magento/Config/Model/Config.php @@ -33,7 +33,6 @@ * * Used to save configuration * - * @author Magento Core Team * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @api * @since 100.0.2 @@ -88,7 +87,7 @@ class Config extends DataObject protected $_objectFactory; /** - * TransactionFactory + * DB transaction factory * * @var TransactionFactory */ From a63c5d8a01b8222ae66e079f4369add189c7c05a Mon Sep 17 00:00:00 2001 From: T Prasanna Date: Fri, 5 Jul 2024 12:28:49 +0530 Subject: [PATCH 3/5] added aliases to generic class names --- app/code/Magento/Config/Model/Config.php | 84 ++++++++++++------------ 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/app/code/Magento/Config/Model/Config.php b/app/code/Magento/Config/Model/Config.php index 6bebcbb0d2607..fe2da154adcd1 100644 --- a/app/code/Magento/Config/Model/Config.php +++ b/app/code/Magento/Config/Model/Config.php @@ -6,24 +6,24 @@ namespace Magento\Config\Model; use Exception; -use Magento\Config\Model\Config\Loader; -use Magento\Config\Model\Config\Reader\Source\Deployed\SettingChecker; -use Magento\Config\Model\Config\Structure; -use Magento\Config\Model\Config\Structure\Element\Group; -use Magento\Config\Model\Config\Structure\Element\Field; +use Magento\Config\Model\Config\Loader as ConfigLoader; +use Magento\Config\Model\Config\Reader\Source\Deployed\SettingChecker as ConfigSettingChecker; +use Magento\Config\Model\Config\Structure as ConfigStructure; +use Magento\Config\Model\Config\Structure\Element\Group as GroupElement; +use Magento\Config\Model\Config\Structure\Element\Field as FieldElement; use Magento\Framework\App\Config\ReinitableConfigInterface; use Magento\Framework\App\Config\ScopeConfigInterface; -use Magento\Framework\App\Config\ValueFactory; -use Magento\Framework\App\Config\ValueInterface; +use Magento\Framework\App\Config\ValueFactory as ConfigValueFactory; +use Magento\Framework\App\Config\ValueInterface as ConfigValueInterface; use Magento\Framework\App\ObjectManager; use Magento\Framework\App\ScopeInterface; use Magento\Framework\App\ScopeResolverPool; use Magento\Framework\DataObject; use Magento\Framework\DB\Transaction; use Magento\Framework\DB\TransactionFactory; -use Magento\Framework\Event\ManagerInterface; +use Magento\Framework\Event\ManagerInterface as EventManagerInterface; use Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface; -use Magento\Framework\Simplexml\Element; +use Magento\Framework\Simplexml\Element as SimplexmlElement; use Magento\Store\Model\ScopeInterface as StoreScopeInterface; use Magento\Store\Model\ScopeTypeNormalizer; use Magento\Store\Model\StoreManagerInterface; @@ -61,14 +61,14 @@ class Config extends DataObject /** * Event dispatcher * - * @var ManagerInterface + * @var EventManagerInterface */ protected $_eventManager; /** * System configuration structure * - * @var Structure + * @var ConfigStructure */ protected $_configStructure; @@ -96,14 +96,14 @@ class Config extends DataObject /** * Config data loader * - * @var Loader + * @var ConfigLoader */ protected $_configLoader; /** * Config data factory * - * @var ValueFactory + * @var ConfigValueFactory */ protected $_configValueFactory; @@ -113,9 +113,9 @@ class Config extends DataObject protected $_storeManager; /** - * @var Config\Reader\Source\Deployed\SettingChecker + * @var ConfigSettingChecker */ - private $settingChecker; + private $configSettingChecker; /** * @var ScopeResolverPool @@ -134,13 +134,13 @@ class Config extends DataObject /** * @param ReinitableConfigInterface $config - * @param ManagerInterface $eventManager - * @param Structure $configStructure + * @param EventManagerInterface $eventManager + * @param ConfigStructure $configStructure * @param TransactionFactory $transactionFactory - * @param Loader $configLoader - * @param ValueFactory $configValueFactory + * @param ConfigLoader $configLoader + * @param ConfigValueFactory $configValueFactory * @param StoreManagerInterface $storeManager - * @param Config\Reader\Source\Deployed\SettingChecker|null $settingChecker + * @param ConfigSettingChecker|null $configSettingChecker * @param array $data * @param ScopeResolverPool|null $scopeResolverPool * @param ScopeTypeNormalizer|null $scopeTypeNormalizer @@ -149,13 +149,13 @@ class Config extends DataObject */ public function __construct( ReinitableConfigInterface $config, - ManagerInterface $eventManager, - Structure $configStructure, + EventManagerInterface $eventManager, + ConfigStructure $configStructure, TransactionFactory $transactionFactory, - Loader $configLoader, - ValueFactory $configValueFactory, + ConfigLoader $configLoader, + ConfigValueFactory $configValueFactory, StoreManagerInterface $storeManager, - SettingChecker $settingChecker = null, + ConfigSettingChecker $configSettingChecker = null, array $data = [], ScopeResolverPool $scopeResolverPool = null, ScopeTypeNormalizer $scopeTypeNormalizer = null, @@ -169,8 +169,8 @@ public function __construct( $this->_configLoader = $configLoader; $this->_configValueFactory = $configValueFactory; $this->_storeManager = $storeManager; - $this->settingChecker = $settingChecker - ?? ObjectManager::getInstance()->get(SettingChecker::class); + $this->configSettingChecker = $configSettingChecker + ?? ObjectManager::getInstance()->get(ConfigSettingChecker::class); $this->scopeResolverPool = $scopeResolverPool ?? ObjectManager::getInstance()->get(ScopeResolverPool::class); $this->scopeTypeNormalizer = $scopeTypeNormalizer @@ -258,16 +258,16 @@ public function save() /** * Map field name if they were cloned * - * @param Group $group + * @param GroupElement $group * @param string $fieldId * @return string */ - private function getOriginalFieldId(Group $group, string $fieldId): string + private function getOriginalFieldId(GroupElement $group, string $fieldId): string { if ($group->shouldCloneFields()) { $cloneModel = $group->getCloneModel(); - /** @var Field $field */ + /** @var FieldElement $field */ foreach ($group->getChildren() as $field) { foreach ($cloneModel->getPrefixes() as $prefix) { if ($prefix['field'] . $field->getId() === $fieldId) { @@ -287,11 +287,11 @@ private function getOriginalFieldId(Group $group, string $fieldId): string * @param string $sectionId * @param string $groupId * @param string $fieldId - * @return Field + * @return FieldElement */ - private function getField(string $sectionId, string $groupId, string $fieldId): Field + private function getField(string $sectionId, string $groupId, string $fieldId): FieldElement { - /** @var Group $group */ + /** @var GroupElement $group */ $group = $this->_configStructure->getElement($sectionId . '/' . $groupId); $fieldPath = $group->getPath() . '/' . $this->getOriginalFieldId($group, $fieldId); $field = $this->_configStructure->getElement($fieldPath); @@ -302,13 +302,13 @@ private function getField(string $sectionId, string $groupId, string $fieldId): /** * Get field path * - * @param Field $field + * @param FieldElement $field * @param string $fieldId Need for support of clone_field feature * @param array $oldConfig Need for compatibility with _processGroup() * @param array $extraOldGroups Need for compatibility with _processGroup() * @return string */ - private function getFieldPath(Field $field, string $fieldId, array &$oldConfig, array &$extraOldGroups): string + private function getFieldPath(FieldElement $field, string $fieldId, array &$oldConfig, array &$extraOldGroups): string { $path = $field->getGroupPath() . '/' . $fieldId; @@ -422,7 +422,7 @@ protected function _processGroup( $groupPath = $sectionPath . '/' . $groupId; if (isset($groupData['fields'])) { - /** @var Group $group */ + /** @var GroupElement $group */ $group = $this->_configStructure->getElement($groupPath); // set value for group field entry by fieldname @@ -433,7 +433,7 @@ protected function _processGroup( } foreach ($groupData['fields'] as $fieldId => $fieldData) { - $isReadOnly = $this->settingChecker->isReadOnly( + $isReadOnly = $this->configSettingChecker->isReadOnly( $groupPath . '/' . $fieldId, $this->getScope(), $this->getScopeCode() @@ -444,7 +444,7 @@ protected function _processGroup( } $field = $this->getField($sectionPath, $groupId, $fieldId); - /** @var ValueInterface $backendModel */ + /** @var ConfigValueInterface $backendModel */ $backendModel = $field->hasBackendModel() ? $field->getBackendModel() : $this->_configValueFactory->create(); @@ -672,12 +672,12 @@ protected function _getConfig($full = true) /** * Set correct scope if isSingleStoreMode = true * - * @param Field $fieldConfig - * @param ValueInterface $dataObject + * @param FieldElement $fieldConfig + * @param ConfigValueInterface $dataObject * @return void */ protected function _checkSingleStoreMode( - Field $fieldConfig, + FieldElement $fieldConfig, $dataObject ) { $isSingleStoreMode = $this->_storeManager->isSingleStoreMode(); @@ -700,7 +700,7 @@ protected function _checkSingleStoreMode( * @param string $path * @param null|bool $inherit * @param null|array $configData - * @return Element + * @return SimplexmlElement */ public function getConfigDataValue($path, &$inherit = null, $configData = null) { From 215e1d4cc3fed6d97975abe10a995f3ea5e08218 Mon Sep 17 00:00:00 2001 From: T Prasanna Date: Tue, 15 Oct 2024 19:38:09 +0530 Subject: [PATCH 4/5] fix static test --- app/code/Magento/Config/Model/Config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Config/Model/Config.php b/app/code/Magento/Config/Model/Config.php index fe2da154adcd1..2f1e9dc300042 100644 --- a/app/code/Magento/Config/Model/Config.php +++ b/app/code/Magento/Config/Model/Config.php @@ -308,7 +308,7 @@ private function getField(string $sectionId, string $groupId, string $fieldId): * @param array $extraOldGroups Need for compatibility with _processGroup() * @return string */ - private function getFieldPath(FieldElement $field, string $fieldId, array &$oldConfig, array &$extraOldGroups): string + private function getFieldPath(FieldElement $field, string $fieldId, array &$oldConfig, array &$extraOldGroups): string // phpcs:ignore Generic.Files.LineLength { $path = $field->getGroupPath() . '/' . $fieldId; From 44a0f18bd8ed2ddc9120720b9b136f4e024cc2ed Mon Sep 17 00:00:00 2001 From: T Prasanna Date: Wed, 16 Oct 2024 13:41:21 +0530 Subject: [PATCH 5/5] fix static tests while adhering to coding standard --- app/code/Magento/Config/Model/Config.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Config/Model/Config.php b/app/code/Magento/Config/Model/Config.php index 2f1e9dc300042..74eb7b5ed7330 100644 --- a/app/code/Magento/Config/Model/Config.php +++ b/app/code/Magento/Config/Model/Config.php @@ -308,8 +308,12 @@ private function getField(string $sectionId, string $groupId, string $fieldId): * @param array $extraOldGroups Need for compatibility with _processGroup() * @return string */ - private function getFieldPath(FieldElement $field, string $fieldId, array &$oldConfig, array &$extraOldGroups): string // phpcs:ignore Generic.Files.LineLength - { + private function getFieldPath( + FieldElement $field, + string $fieldId, + array &$oldConfig, + array &$extraOldGroups + ): string { $path = $field->getGroupPath() . '/' . $fieldId; /**