API
API
API (классы) модуля не делятся по базам данных. ORM скрывает в себе все тонкости работы с конкретной базой данных.
В названиях классов не должны использоваться какие-либо префиксы или суффиксы.
Каждый класс API модуля может лежать в отдельном файле с названием, совпадающим с именем класса, написанном в нижнем регистре. Классы, лежащие в корне пространства имен модуля, должны быть расположены в файлах, лежащих в корне папки /lib модуля. Классы, лежащие в подпространствах внутри пространства имен модуля, должны быть расположены в файлах, лежащих в соответствующих подпапках папки /lib модуля.
Например, класс Bitrix\Main\Application должен быть расположен в файле /lib/application.php относительно корневой папки модуля main, класс Bitrix\Main\IO\File должен быть расположен в файле /lib/io/file.php относительно корневой папки модуля main, класс Bitrix\Forum\Message должен быть расположен в файле /lib/message.php относительно корневой папки модуля forum.
При соблюдении этих правил именования после подключения модуля его классы подгружаются автоматически при первом обращении к ним. Никаких дополнительных действий для регистрации и подключения файлов с классами не требуется.
Примечание: Тем не менее, дополнительная регистрация и подключение рекомендуется для часто используемых классов по соображениям производительности.
Исключением из правил именования классов и файлов являются классы сущностей ORM (наследников Bitrix\Main\Entity\DataManager). Имена таких классов формируются с суффиксом Table. (Например: CultureTable, LanguageTable.) А имя файла не содержит суффикса table. Такие классы также подключаются автоматически.
Примечание: Существует возможность вручную зарегистрировать класс в системе автозагрузки с помощью метода
Это можно использовать для объединения маленьких классов в один файл.
Нестандартные классы (кастомные, партнёрские), должны находиться в собственных пространствах имен, совпадающих с названиями соответствующих партнеров. Каждый партнерский модуль определяет в пространстве имен партнера свое подпространство, совпадающее с именем модуля без имени партнера. Например, для модуля mycompany.catalog партнера "Mycompany" пространством имен будет MyCompany\Catalog. Остальные правила совпадают с правилами для стандартных модулей.
Для подключения модуля в новом ядре используется инструкция:
Правила наименования
Классы:
- Должны именоваться "ВерхнимКэмелКейсом".
- Не могут содержать в названии никаких символов, кроме букв латинского алфавита.
- Название класса должно быть существительным. Надо стараться избегать ненужных сокращений и аббревиатур.
Примеры:
Методы
- Методы, в том числе методы класса, должны именоваться "нижнимКэмелКейсом".
- Не могут содержать в названии никаких символов, кроме букв латинского алфавита.
- Использование цифр допускается, если избежать иного не получается. Например: encodeBase64, getSha1Key.
- Название метода должно начинаться с глагола.
- Длина названия должна быть не менее 3-х символов.
Примеры:
Константы
- Константы, в том числе константы класса, должны быть написаны в ВЕРХНЕМ_РЕГИСТРЕ_С_РАЗДЕЛИТЕЛЕМ_ПОДЧЕРКИВАНИЕМ.
- Могут содержать буквы латинского алфавита, знак подчеркивания и числа (не в первой позиции).
Примеры:
Члены класса, параметры методов и переменные
- Должны именоваться "нижнимКэмелКейсом".
- Не должны содержать префиксов означающих членство в классе, принадлежность параметрам, тип и прочие бессодержательные вещи. Пример лишних префиксов:
$this->mAge, function setName($pName), $arrArray. - Могут содержать буквы латинского алфавита и числа (не в первой позиции).
Примеры:
Общепринятые сокращения в названиях переменных и методов
- Сокращения на первой позиции должны быть написаны маленькими буквами, на не первой позиции - должны начинаться с большой буквы, а все остальные - маленькие.
- В именах классов - с большой, остальные маленькие.
Пример:
Сокращения, не являющиеся общепринятыми (в Битриксе), использовать нельзя.
Документация