![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/framework/App/Config/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\App\Config; /** * Config data model * * This model is temporarily marked as API since {@see \Magento\Framework\App\Config\ValueInterface} doesn't fit * developers' needs of extensibility. In 2.4 we are going to introduce a new interface which should cover all needs * and deprecate the mentioned together with the model * * @method string getScope() * @method \Magento\Framework\App\Config\ValueInterface setScope(string $value) * @method int getScopeId() * @method \Magento\Framework\App\Config\ValueInterface setScopeId(int $value) * @method string getPath() * @method \Magento\Framework\App\Config\ValueInterface setPath(string $value) * @method string getValue() * @method \Magento\Framework\App\Config\ValueInterface setValue(string $value) * * @api * * @SuppressWarnings(PHPMD.NumberOfChildren) * @since 100.0.2 */ class Value extends \Magento\Framework\Model\AbstractModel implements \Magento\Framework\App\Config\ValueInterface { /** * Prefix of model events names * * @var string */ protected $_eventPrefix = 'config_data'; /** * Parameter name in event * * In observe method you can use $observer->getEvent()->getObject() in this case * * @var string */ protected $_eventObject = 'config_data'; /** * @var \Magento\Framework\App\Config\ScopeConfigInterface */ protected $_config; /** * @var \Magento\Framework\App\Cache\TypeListInterface */ protected $cacheTypeList; /** * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param ScopeConfigInterface $config * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection * @param array $data */ public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList, \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { $this->_config = $config; $this->cacheTypeList = $cacheTypeList; parent::__construct($context, $registry, $resource, $resourceCollection, $data); } /** * Check if config data value was changed * * @return bool */ public function isValueChanged() { return $this->getValue() != $this->getOldValue(); } /** * Get old value from existing config * * @return string */ public function getOldValue() { return (string)$this->_config->getValue( $this->getPath(), $this->getScope() ?: ScopeConfigInterface::SCOPE_TYPE_DEFAULT, $this->getScopeCode() ); } /** * Get value by key for new user data from <section>/groups/<group>/fields/<field> * * @param string $key * @return string */ public function getFieldsetDataValue($key) { $data = $this->_getData('fieldset_data'); return is_array($data) && isset($data[$key]) ? $data[$key] : null; } /** * Processing object after save data * * {@inheritdoc}. In addition, it sets status 'invalidate' for config caches * * @return $this */ public function afterSave() { if ($this->isValueChanged()) { $this->cacheTypeList->invalidate(\Magento\Framework\App\Cache\Type\Config::TYPE_IDENTIFIER); } return parent::afterSave(); } /** * Processing object after delete data * * {@inheritdoc}. In addition, it sets status 'invalidate' for config caches * * @return $this * @since 100.1.0 */ public function afterDelete() { $this->cacheTypeList->invalidate(\Magento\Framework\App\Cache\Type\Config::TYPE_IDENTIFIER); return parent::afterDelete(); } }