Блог Горошко Андрея 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

Как работать с HL-блоками в 1С-БитриксКак работать с HL-блоками в 1С-Битрикс

Средний рейтинг Еще нет оценок В этой статье я расскажу вам, как работать с HL-блоками в 1С-Битрикс, используя API Bitrix. HL-блоки (Highload-блоки) — это специальные сущности, которые позволяют хранить и

Управление файлами в Битрикс с помощью CFile: Сохранение, ресайз и удалениеУправление файлами в Битрикс с помощью CFile: Сохранение, ресайз и удаление

Средний рейтинг Еще нет оценок Работа с файлами — неотъемлемая часть веб-разработки. В Битрикс для этого существует мощный класс CFile. Он не просто работает с файлами на диске, но и регистрирует

Основы работы с компонентами Битрикс: Структура, $arParams, $arResult и template.phpОсновы работы с компонентами Битрикс: Структура, $arParams, $arResult и template.php

Средний рейтинг Еще нет оценок Компоненты — это строительные блоки, из которых состоит любой сайт на 1С-Битрикс. Это самодостаточные программные модули, которые решают конкретную задачу: выводят новости, показывают каталог товаров,