Пространства имен namespace
Понятие пространств имен позволяет давать элементам системы более четкие имена, избавиться от множества префиксов имен и избежать потенциальных конфликтов. Все классы, поставляемые в стандартном дистрибутиве, должны находиться в пространстве имен Bitrix
, которое не пересекается с PHP и разработками партнёров. Каждый стандартный модуль определяет в пространстве имен Bitrix
свое подпространство, совпадающее с именем модуля, например:
- Для модуля
forum
пространством имен будетBitrix\Forum
- Для модуля
main
пространством имен будетBitrix\Main
Пространства имён для своих модулей
Для классов партнеров namespace
будет другим, сам класс лежит в файле asd.metrika/lib/counters.php
:
asd.metrika/lib/counters.phpnamespace Asd\Metrika;
class CountersTable extends Entity\DataManager
{
public static function update()
{
}
}
Данный класс в /lib/
принадлежит модулю asd.metrika
, к нему после подключения указанного модуля можно обращаться так:
\Asd\Metrika\CountersTable::update();
Правила наименования
- Пространства имен должны именоваться
ВерхнимКэмелКейсом
- Не могут содержать в названии никаких символов, кроме букв латинского алфавита
- Название класса должно быть существительным. Надо стараться избегать ненужных сокращений и аббревиатур
Допустимо использование синонимов, вместо длинных пространств имен. Для этого необходимо использовать use
. Например, мы имеем длинную конструкцию:
\Bitrix\Main\Localization\Loc::getMessage("NAME");
Для сокращения, объявим в начале файла синоним и далее уже будем использовать сокращенный вариант вызова:
use \Bitrix\Main\Localization\Loc;
...
Loc::getMessage("NAME");