
Классы Битрикс хранятся преимущественно в каталоге /bitrix/modules/. Каждый модуль представлен отдельной папкой, внутри которой находятся папки install, include и lib. Основная рабочая логика классов сосредоточена в lib, где структура соответствует пространствам имён, используемым в коде.
Для пользовательских компонентов и расширений классы лучше размещать в /local/php_interface/include/ или /local/modules/. Это предотвращает перезапись при обновлениях ядра и модулей. Рекомендуется соблюдать иерархию папок и имена файлов, соответствующие PSR-4, чтобы автозагрузка выполнялась корректно.
Автозагрузка классов Битрикс осуществляется через CMain::IncludeModule и стандартный spl_autoload_register. Любые изменения структуры каталогов модулей требуют обновления путей в autoload.php или в собственных функциях подключения, чтобы исключить ошибки «Class not found».
Для отладки и поиска классов можно использовать Bitrix\Main\Loader::registerAutoLoadClasses. Она позволяет явно указывать путь к файлу класса, ускоряя диагностику проблем с подключением модулей и совместимостью версий ядра и сторонних компонентов.
Где хранится ядро классов Битрикс

Ядро классов Битрикс расположено в каталоге /bitrix/modules. Каждый модуль имеет собственную папку с набором PHP-файлов, в которых реализованы основные классы и интерфейсы.
Для системных классов используется каталог /bitrix/modules/main/lib. Здесь находятся базовые компоненты платформы: классы для работы с пользователями, сессиями, настройками, событиями и другими системными механизмами.
Классы ядра имеют строгую структуру именования и автозагрузку через стандарт Bitrix\Main. Файлы организованы по пространствам имён, что упрощает их подключение в коде и предотвращает конфликты с пользовательскими классами.
Дополнительные ядровые функции могут храниться в /bitrix/modules/main/classes и /bitrix/modules/main/include. В include размещены вспомогательные скрипты и процедуры, используемые в административной части и публичной логике.
При работе с ядром рекомендуется использовать стандартные методы подключения классов через use Bitrix\Main\ClassName и избегать прямого подключения файлов через require, чтобы сохранять совместимость с будущими обновлениями.
Для анализа и поиска конкретных классов полезно использовать структуру /lib с разбивкой по подпапкам: /lib/authorization, /lib/entity, /lib/db, что позволяет быстро ориентироваться в функционале ядра.
Расположение пользовательских классов и их подключение
Пользовательские классы в Битрикс принято размещать вне ядра системы, чтобы не нарушать работу обновлений. Стандартное место для хранения – директория /local/php_interface/include/classes/. Внутри можно создавать подкаталоги по функциональным областям, например /local/php_interface/include/classes/Order/ или /local/php_interface/include/classes/User/.
Файлы классов должны именоваться по соглашению: имя класса совпадает с именем файла, например класс OrderManager хранится в файле OrderManager.php. Это упрощает автозагрузку и поиск ошибок.
Для подключения классов рекомендуется использовать стандартный автозагрузчик Битрикс через CModule::AddAutoloadClasses:
use Bitrix\Main\Loader;
CModule::AddAutoloadClasses(
"local.classes",
array(
"OrderManager" => "/local/php_interface/include/classes/Order/OrderManager.php",
"UserHelper" => "/local/php_interface/include/classes/User/UserHelper.php"
)
);
Альтернатива – прямое подключение через require_once, но оно менее удобно при масштабировании проекта:
require_once $_SERVER["DOCUMENT_ROOT"]."/local/php_interface/include/classes/Order/OrderManager.php";
Рекомендуется придерживаться структуры, соответствующей пространствам имён, если используется PSR-4. Это облегчает внедрение сторонних библиотек и тестирование.
- Не храните пользовательские классы в
/bitrix/php_interface/без необходимости. - Разделяйте бизнес-логику и утилитарные функции по папкам.
- Автозагрузка через
CModule::AddAutoloadClassesупрощает поддержку и обновления.
Пути к классам модулей внутри /bitrix/modules

В каталоге /bitrix/modules каждый модуль располагается в отдельной папке, имя которой совпадает с идентификатором модуля, например iblock, sale, catalog. Внутри папки модуля классы обычно находятся в подпапке classes.
Структура папки класса часто выглядит следующим образом:
| Путь | Назначение |
|---|---|
/bitrix/modules/ |
Общие классы, которые не зависят от конкретной версии PHP или базы данных. |
/bitrix/modules/ |
Классы, специфичные для работы с MySQL. Аналогично могут быть /oracle/, /mssql/ для других СУБД. |
/bitrix/modules/ |
Современные классы с пространствами имён (namespace), начиная с версий 14 и выше. |
/bitrix/modules/ |
Файл подключения основных классов модуля. |
Рекомендуется использовать автозагрузку через Bitrix\Main\Loader::includeModule, чтобы не указывать пути вручную. Файлы из classes/general подключаются автоматически при старой структуре через CModule::IncludeModule.
Для поиска нужного класса можно ориентироваться по имени файла: имя класса в старой структуре совпадает с именем файла с маленькой буквы и расширением .php. В новой структуре /lib имя класса соответствует пространству имён и пути файла, например класс Bitrix\Iblock\ElementTable лежит в /bitrix/modules/iblock/lib/element.php.
При модификации или расширении классов лучше создавать свои файлы в /local/php_interface/include или использовать события модуля, чтобы изменения не терялись при обновлении.
Структура папок для стандартных компонентов и классов
В Битрикс стандартные компоненты размещаются в каталоге /bitrix/components/. Каждый компонент представлен отдельной папкой, которая содержит подпапки templates и class.php. Папка templates хранит визуальные шаблоны компонента, разделённые по именам шаблонов. Файл class.php содержит основную логику и методы компонента.
Стандартные классы ядра Битрикс находятся в каталоге /bitrix/modules/. Каждый модуль имеет собственную папку с подкаталогами install, lib и include. Папка lib содержит PHP-классы с пространствами имён, соответствующими структуре папок. Например, класс CIBlockElement располагается в /bitrix/modules/iblock/lib/element.php.
Файлы .php внутри /lib/ обычно отражают объектную модель модуля. Для упрощения автозагрузки используется PSR-4 совместимое разбиение по папкам и именам файлов. При добавлении собственных классов рекомендуется придерживаться той же логики: имена папок повторяют пространства имён, а имена файлов совпадают с именами классов.
Классы вспомогательных функций, не относящиеся напрямую к компонентам, размещаются в /bitrix/modules/[модуль]/include.php или в отдельных подкаталогах tools и classes. При подключении в коде используется Bitrix\Main\Loader::includeModule() для корректной загрузки модулей и их классов.
Для разработки и отладки компонентов рекомендуется соблюдать стандартную структуру папок: /bitrix/components/[vendor]/[component]/class.php и /bitrix/components/[vendor]/[component]/templates/[template]/. Это обеспечивает совместимость с системой обновлений и автозагрузкой классов.
Как найти классы инфоблоков на сервере

Классы инфоблоков в Битрикс хранятся в каталоге /bitrix/modules/iblock/lib/. Основные файлы располагаются по структуре /lib/{подкаталог}/{ИмяКласса}.php. Например, класс CIBlockElement соответствует файлу /bitrix/modules/iblock/lib/element.php.
Для быстрого поиска конкретного класса можно использовать команду Linux grep -R "class ИмяКласса" /bitrix/modules/iblock/lib/. Она покажет точный путь к файлу и место определения класса.
Если требуется просмотреть наследуемые классы или интерфейсы, стоит обратить внимание на подкаталоги /lib/base/ и /lib/entities/, где находятся базовые и служебные классы инфоблоков.
Дополнительно, в файлах /bitrix/modules/iblock/include.php и /bitrix/modules/iblock/class.php подключаются основные библиотеки, что помогает определить зависимости между классами и их расположение на сервере.
Для автоматизации поиска всех классов инфоблоков удобно использовать скрипт PHP с функцией get_declared_classes() после подключения модуля CModule::IncludeModule('iblock'). Это позволит получить список всех загруженных классов с указанием их пространств имен.
Расположение классов для работы с пользователями и группами

В Битрикс классы, отвечающие за работу с пользователями и группами, находятся в директории /bitrix/modules/main/lib. Основной класс для пользователей – Bitrix\Main\User, а для групп – Bitrix\Main\Group. Эти классы обеспечивают создание, обновление, удаление и выборку данных из соответствующих таблиц базы данных.
Файлы классов располагаются по структуре пространства имён: /bitrix/modules/main/lib/user.php и /bitrix/modules/main/lib/group.php. Методы классов используют ORM и позволяют работать с объектами напрямую, минуя SQL-запросы.
Для расширения функционала рекомендуется создавать собственные классы в каталоге /local/php_interface/lib, соблюдая структуру пространства имён, например Local\Custom\User. Это позволит переопределять стандартные методы и сохранять возможность обновления ядра без конфликтов.
При подключении классов используйте автозагрузку через use Bitrix\Main\User; или use Bitrix\Main\Group;. Это исключает необходимость ручного подключения файлов через require_once и упрощает поддержку кода.
Рекомендуется проверять наличие класса перед вызовом методов: if (class_exists(\Bitrix\Main\User::class)) { ... }. Это предотвращает ошибки при обновлениях или в проектах с нестандартной структурой модулей.
Для работы с выборкой пользователей и групп целесообразно использовать методы ORM: UserTable::getList() и GroupTable::getList(). Они поддерживают фильтры, сортировку и выборку по конкретным полям, что сокращает объём кода и повышает читаемость.
Где хранятся вспомогательные и утилитарные классы
В Битрикс вспомогательные и утилитарные классы сосредоточены в нескольких ключевых каталогах, что позволяет быстро находить нужный функционал.
- /bitrix/modules/main/lib/ – содержит базовые утилитарные классы ядра, включая работу с массивами, строками, датами, файловой системой и HTTP-запросами.
- /bitrix/modules/main/include/ – здесь лежат вспомогательные классы и функции для административной панели и API.
- /bitrix/modules/<название_модуля>/lib/ – каждый модуль может иметь собственные утилитарные классы, например, для работы с заказами, пользователями или инфоблоками.
- /bitrix/php_interface/include/ – содержит кастомные вспомогательные классы, созданные разработчиком для проекта.
Рекомендуется придерживаться следующей практики при работе с утилитарными классами:
- Использовать lib/ модулей для стандартных функций, чтобы сохранять совместимость при обновлениях.
- Кастомные утилитарные классы размещать в php_interface/include/ с автозагрузкой через init.php.
- Следить за неймспейсами: классы ядра используют пространство Bitrix\Main, пользовательские классы должны иметь собственное уникальное пространство.
- Не модифицировать исходные файлы модулей, чтобы избежать конфликтов при обновлении платформы.
Такое разделение позволяет быстро находить нужный класс, минимизировать дублирование кода и упрощает поддержку проекта.
Правила подключения классов через автозагрузчик
В Битрикс автозагрузка классов реализуется через стандарт PSR-4 и собственный механизм Bitrix\Main\Loader. Каждый класс должен находиться в папке, соответствующей его пространству имён. Например, класс \Bitrix\Main\User расположен в файле /bitrix/modules/main/lib/user.php. Несоблюдение структуры приведёт к ошибке автозагрузки.
Использование require или include для модульных классов не рекомендуется. Автозагрузчик регистрируется автоматически через autoload.php в корне модуля. При создании собственного класса необходимо указывать правильное пространство имён и размещать файл внутри /lib модуля, например: /bitrix/modules/yourmodule/lib/subfolder/classname.php.
Для подключения класса через автозагрузчик используется метод Bitrix\Main\Loader::includeClass(), если класс не является стандартным модулем ядра. Полное имя класса должно соответствовать пути относительно /lib, включая подпапки. Например, класс \YourModule\Subfolder\MyClass подключается автоматически, если файл находится по пути /bitrix/modules/yourmodule/lib/subfolder/myclass.php.
Файлы должны называться в lowercase, а имена классов – в PascalCase. Для классов с множественными словами рекомендуется использовать поддиректории, чтобы структура совпадала с пространством имён. Это упрощает поддержку и позволяет избежать конфликтов с одноименными классами других модулей.
При разработке собственных модулей важно избегать дублирования имён классов ядра. Если требуется расширение стандартного класса, лучше использовать наследование, а не копирование исходного файла в свой модуль. Автозагрузчик корректно подключит наследуемый класс при соблюдении структуры и соглашений по неймингу.
Вопрос-ответ:
Где на сервере хранятся классы Битрикс?
Классы Битрикс находятся в папке /bitrix/modules. Внутри каждой модуля есть каталог «classes», где располагаются файлы классов. Структура обычно отражает функциональную область модуля, что облегчает поиск нужного класса.
Можно ли изменять файлы классов Битрикс напрямую на сервере?
Прямое изменение файлов классов на сервере не рекомендуется, так как это может вызвать ошибки при обновлении системы. Лучший вариант — использовать пользовательские классы или создавать собственные расширения через include.php и autoload, чтобы не затрагивать ядро.
Как найти конкретный класс по названию в структуре Битрикс?
Если известен точный класс, поиск ведут по папке /bitrix/modules/*/classes. Можно использовать инструменты поиска по содержимому файлов, например grep на Linux или встроенный поиск в редакторе кода, указав имя класса. Обычно файлы называются по имени класса, что облегчает ориентирование.
Что делать, если класс Битрикс не подключается при использовании на сайте?
Чаще всего проблема связана с автозагрузкой. Нужно убедиться, что путь к классу корректен и модуль подключен через \Bitrix\Main\Loader::includeModule(‘имя_модуля’). Также стоит проверить регистр папок и файлов, так как сервер может быть чувствителен к регистру.
Можно ли переопределять классы Битрикс без изменения исходных файлов?
Да, это делается через создание своих классов-наследников или через подключение файла с пользовательскими функциями через include. Такой подход сохраняет возможность обновления Битрикс без потери внесённых изменений и позволяет расширять функционал без риска поломки ядра.
Где на сервере находятся классы Битрикс и как их найти?
Классы Битрикс расположены в файловой структуре проекта в папке /bitrix/modules/. Внутри каждой отдельной модуля содержатся подкаталоги lib, где хранятся PHP-классы, и install, где находятся установочные скрипты. Для примера, классы модуля main можно найти по пути /bitrix/modules/main/lib/. Структура папок обычно повторяет пространство имён классов: если класс имеет пространство имён Bitrix\Main\User, файл будет находиться в /bitrix/modules/main/lib/user.php. Поиск нужного класса также можно ускорить с помощью встроенной функции автозагрузки Битрикс, которая подключает файлы по их пространству имён, поэтому файлы не нужно подключать вручную.
