Main > Magento > Magento 2: Запись и чтение настроек из БД

Magento 2: Запись и чтение настроек из БД

19.05.2019 0 comments » Views: 445

Magento 2

Часто требуется хранить некоторые настройки в базе Magento 2. Сделать это можно различными способами, сегодня рассмотрим ка это делать используя таблицу core_config_data.

Структура таблицы настроек

Таблица core_config_data - дефолтная таблица Magento, служащая для хранения разнообразных настроек. Имеет такую структуру:

Рассмотрим, за что отвечает каждое из начений:

  • config_id = первичный ключ, простой uint номер записи
  • scope = область действия: default, websites, stores
  • scope_id = числовое id области действия
  • path = путь настройки (хотя более подходит "название настройки")
  • value = значение настройки

Пример записи

Трудностей с пониманием полей думаю нет.

Возможно новичкам не будет понятно что такое scope, поэтому объясню в двух словах.
Т.к. одна и та же установка Magento может обслуживать несколько интернет магазинов (websites) и витрин (stores), то для настроек используется иерархия в виде областей действий которые переопределяют друг друга. У нас есть три дефолтные области действия: default, websites, stores.

  • default - Настройка по-умолчанию
  • website - Настройка заданная в скоуп в скоупе website переопределяет значения заданные в default
  • stores - Настройка заданная в скоупе store переопределяет значения заданные в default и website

Соответственно с помощью изменения этих настроек вы можете объявить глобальное значение настройки, потом переопределить ее для одного из доменов, и затем переопределить ее для одной из витрин.

Magento Scope

Чтение и запись

Вернемся к коду и рассмотрим как можно сохранять и считывать настройки.

Для сохранение настроек в БД используется интерфейс: \Magento\Framework\App\Config\Storage\WriteInterface

Для считывания настроек используется интерфейс: \Magento\Framework\App\Config\ScopeConfigInterface

Пример записи настроек

Пример чтения настроек

Заключение

Как видите, читать и сохранять настройки в базе Magento 2 не так уж и сложно.

Author: | Rating: 4/5 | Tags: ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>