126  /  382
Справочник

Практика. Некоторые классы

Просмотров: 49804
Дата последнего изменения: 07.11.2023
Роберт Басыров
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет

Конфигурация

Расположено в пространстве имен \Bitrix\Main\Config. Состоит из двух классов: \Bitrix\Main\Config\Configuration и \Bitrix\Main\Config\Option.

Configuration

$realm = \Bitrix\Main\Config\Configuration::getValue("http_auth_realm");
if (is_null($realm))
	$realm = "Bitrix Site Manager"

Класс отвечает за глобальные настройки всего приложения. (Это то, что в старом ядре определяется константами.) Класс оперирует единой базой настроек, которые хранятся в файле /bitrix/.settings.php. Данные хранятся произвольные. Например, для соединений может храниться целый пул данных для именованных соединений.

Option

$cookiePrefix = \Bitrix\Main\Config\Option::get('main', 'cookie_name', 'BITRIX_SM');
$cookieLogin = $request->getCookie($cookiePrefix.'_LOGIN');
$cookieMd5Pass = $request->getCookie($cookiePrefix.'_UIDN');

Является в некоторой степени аналогом класс COption старого ядра и работает с параметрами модулей, сайтов, хранимых в базе данных. Это то, что управляется из административной части: настройки каких-то форм, установка и так далее.

Файлы

Работа с файлами объектно-ориентированная, вынесена в пространство имён Bitrix\Main\IO и обладает тремя базовыми классами:

  • Path – работа с путями, статический.
  • Directory – работа с папками.
  • File – работа с файлами.

Кроме них есть и другие классы, в том числе и абстрактные, для организации иерархии.

Другие классы

В папке bitrix/modules/main/lib расположена библиотека классов для осуществления разных частых действий, которые вынесены в Main, а не разнесены по разным модулям. В том числе в соответствующих пространствах лежат файлы и API для работы:

  • Bitrix\Main\Data - с кешем, в том числе управляемый кеш.
  • Bitrix\Main\Text - с текстом: классы для конвертации текста и другие
  • Bitrix\Main\Type - с типами данных: дата, файл и другие.
  • Bitrix\Main\Web - с web: работа с URL, обращения по web'у и другие.

Аналог CUtil::jSPostUnescape() в D7

Если необходимо использовать HttpRequest при аякс запросах:

Application::getInstance()->getContext()->getRequest()->getPost('name')

то надо учитывать, что CUtil::JSPostUnescape не поможет в случае установки win-1251.

Можно использовать:

use Bitrix\Main\Web\PostDecodeFilter;
...
Application::getInstance()->getContext()->getRequest()->addFilter(new PostDecodeFilter)

После этого можно получать декодированные данные через getPost.


35
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии