Блог Горошко Андрея 1C-Битрикс Настройки модулей: COption и современный \Bitrix\Main\Config\Option

Настройки модулей: COption и современный \Bitrix\Main\Config\Option

Средний рейтинг
Еще нет оценок

Настройки модулей (те, что задаются в административной панели) хранятся в базе данных в таблице b_option.

Для программного доступа к этим настройкам в Битрикс есть два API: старый (COption) и новый, на D7 (Option).

Когда это нужно?

  • Когда ваш кастомный код должен использовать параметры, заданные в админке (например, API-ключ, ID инфоблока, флаг «включить/выключить фичу»).
  • При установке модуля, чтобы записать значения по умолчанию.
  • Для создания кастомных страниц настроек.

1. Классический подход: COption

Класс COption имеет два основных метода для чтения, разделенных по «типу», хотя по факту оба возвращают строку.

Чтение настройки: GetOptionString / GetOptionInt

  • COption::GetOptionString($moduleId, $name, $defaultValue = «»)
  • $moduleId: ID модуля (например, «main», «iblock», «my.module»).
  • $name: Символьный код опции.
  • $defaultValue: Значение, которое вернется, если опция не найдена.

// Получаем E-mail администратора из настроек главного модуля
$adminEmail = COption::GetOptionString("main", "email_from", "default@example.com");

// Получаем ID инфоблока новостей из настроек нашего модуля
$newsIblockId = COption::GetOptionInt("my.module", "news_iblock_id");
// GetOptionInt — это просто обертка над GetOptionString с приведением результата к (int).

// Запись настройки: `SetOptionString` / `SetOptionInt`
COption::SetOptionString($moduleId, $name, $value = "");

// Устанавливаем настройку для нашего модуля
COption::SetOptionString("my.module", "api_key", "xyz123abc");

Этот метод обычно используется в обработчиках форм на страницах настроек модуля.

2. Современный D7-подход: \Bitrix\Main\Config\Option

В ядре D7 появился новый класс, который унифицирует работу с опциями и делает код чище.

Подготовка:codePHP

use Bitrix\Main\Config\Option;

Чтение настройки: Option::get()
Метод get() заменяет собой и GetOptionString, и GetOptionInt.

// Получаем E-mail администратора
$adminEmail = Option::get("main", "email_from", "default@example.com");

// Получаем ID инфоблока новостей (нужно приводить к int самостоятельно)
$newsIblockId = (int)Option::get("my.module", "news_iblock_id", 0);

Запись настройки: Option::set()codePHP

// Устанавливаем настройку
Option::set("my.module", "api_key", "xyz123abc-new");

Удаление настройки: Option::delete()
В D7 появился удобный метод для удаления опций.

// Удаляем настройку
Option::delete("my.module", ["name" => "api_key"]);

// Можно удалить все настройки для модуля
Option::delete("my.module");

Сравнение подходов

КритерийCOption (старое API)\Bitrix\Main\Config\Option (D7)
СтильПроцедурный, статические методыООП, статические методы в классе с неймспейсом
ЧтениеGetOptionString, GetOptionIntЕдиный метод get()
ЗаписьSetOptionString, SetOptionIntЕдиный метод set()
УдалениеRemoveOption (менее гибкий)delete() с фильтром
РекомендацииДля поддержки старого кодаДля всех новых разработок

Вывод:
Работа с настройками модулей — фундаментальная часть разработки на Битрикс.

Хотя старый COption все еще работает, для нового кода всегда используйте \Bitrix\Main\Config\Option.

Это делает ваш код более современным, читаемым и соответствующим стандартам D7.


COption, GetOptionString, SetOptionString, Bitrix\Main\Config\Option, настройки модуля, Битрикс, get, set, параметры.

Мой рейтинг:

Добавить комментарий

Related Post

Гибкая выборка в D7 ORM: Мастер-класс по классу QueryГибкая выборка в D7 ORM: Мастер-класс по классу Query

Средний рейтинг Еще нет оценок Хотя статический метод ::getList() удобен для простых выборок, его возможности ограничены, когда условия запроса нужно формировать динамически. Для таких задач в D7 ORM существует специальный класс-конструктор — \Bitrix\Main\Entity\Query.

Система событий в Битрикс: AddEventHandler и современный EventManager из D7Система событий в Битрикс: AddEventHandler и современный EventManager из D7

Средний рейтинг Еще нет оценок Система событий — один из самых мощных механизмов в 1С-Битрикс. Она позволяет «вклиниваться» в стандартные процессы (например, перед добавлением товара в корзину или после обновления

Создание кастомной страницы в административной панели БитриксСоздание кастомной страницы в административной панели Битрикс

Средний рейтинг 5 из 5 звезд. 1 голосов. Иногда стандартного функционала админки не хватает. Требуется создать страницу для кастомного отчета, дашборда или инструмента управления. Битрикс позволяет легко интегрировать свои страницы