Abr@X@bra.ru
Битрикс D7. Пространства имен
Битрикс D7. Пространства имен

Битрикс D7. Пространства имен

15.05.2017
410

Рассмотрим вопрос – пространство имен в Битрикс.

Это еще один важный момент, который появился в новом ядре D7 и вам необходимо его знать.

С версии php 5.3, появилась возможность определять свои пространство имен. Раньше существовало всего два вида пространство имен.

Глобальное – в которой выполнялась все логика вашего кода.  

Локальное – в которой определялись переменные и функции.

Теперь можно определить свое пространство имен, в котором будут существовать ваши классы, методы и т.д.

О минимальной системе требований Битрикса в части php является наличие версии php 5.3 и выше. Битрикс внедрил использование пространство имен в новое ядро D7.

Понятие пространство имен, позволяет давать элементам системы более четкие имена. Избавиться от множество префиксов имен, а также избежать потенциальных конфликтов.   

Все классы поставляющие в стандартном дистрибутиве, должны находиться в пространстве имен Битрикс. Которые не пересекаются не с php, не с разработкой ваших компонентов.  

Каждый стандартный модуль, определяет в пространстве имен Битрикс свое подпространство, совпадающие с именем модуля.

Например, для модуля forum, пространство имен будет – Bitrix\Forum. Работать с пространством имен Битрикс, не сложно.

Если вам нужно поместить ваш класс в свое пространство имен, то в самом верху файла в котором вы описываете класс, указываем ключевое слово - namespace abraxabra\BitrixD7;

Вызвать метод GetPatch(); мы можем следующим образом:

\Abraxabra\BitrixD7\main::GetPatch();

Также мы можем использовать синонимы, вместо длинных названий, пространство имен. Для этого достаточно использовать use.

Например, вместо такого длинного вызова:

\Bitrix\Main\Localization\Loc::getMessage(‘NAME’);

В начале файла, объявить синоним, далее использовать сокращенный вариант вызова:

use \Bitrix\Main\Localization\Loc;

Loc::getMessage(‘NAME’);

Но даже эта запись вас может не устроить. Либо имя класса будет длинным, либо оно может совпадать с другим классом для которого определен синоним. То есть в данном файле имеется два класса с одинаковыми именами из разных пространств имен, будет ошибка.   

Поэтом можно использовать другой вариант записи, где вы явно указываете синоним. Тогда сам вызов должен выглядеть вот так:

use \Bitrix\Main\Localization\Loc as LC;

LC::getMessage(‘NAME’);





Bitrix
Читайте также:
Битрикс D7. Компоненты

Битрикс D7. Компоненты

Первым важным нововведением ядра D7, являются компоненты на классах. Это возможность появилась с 12 версии главного моду...
Читать
Битрикс D7. Папка local

Битрикс D7. Папка local

В этом посте расскажу про папку local, которая появилась с приходом нового ядра D7 в Битрикс.
Читать
Битрикс D7. Настройка параметров ядра

Битрикс D7. Настройка параметров ядра

Битрикс имеет ряд настроек ядра, которые не имеют визуального интерфейса редактирования. Это сделано специально, так как...
Читать