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

Пространства имён

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

Пространства имён

Понятие пространств имен Пространство имён (англ. namespace) - некоторое множество, под которым подразумевается модель, абстрактное хранилище или окружение, созданное для логической группировки уникальных идентификаторов (то есть имён).

Подробнее...
позволяет давать элементам системы более четкие имена, избавиться от множества префиксов имен, а также избежать потенциальных конфликтов. Все классы, поставляемые в стандартном дистрибутиве, должны находиться в пространстве имен Bitrix, которое не пересекается ни с PHP, ни с разработками партнёров. Каждый стандартный модуль определяет в пространстве имен Bitrix свое подпространство, совпадающее с именем модуля. Например, для модуля forum пространством имен будет Bitrix\Forum, а для модуля main - Bitrix\Main.

Примечание: Для классов партнеров namespace может быть таким:
namespace Asd\Metrika;  
 
class CountersTable extends Entity\DataManager  
{  
   ....

Это значит, что данный класс (в /lib/) принадлежит модулю asd.metrika и к нему (после подключения указанного модуля) можно обращаться так:

\Asd\Metrika\CountersTable::update();

Сам класс лежит в файле asd.metrika/lib/counters.php.

При необходимости модуль может организовывать подпространства внутри своего пространства имен. Например, Bitrix\Main\IO, Bitrix\Forum\SomeName\SomeNameTwo. Но такой возможностью следует пользоваться только если это оправдано для организации правильной архитектуры данного модуля.

Правила наименования

  • Пространства имен должны именоваться "ВерхнимКэмелКейсом".
  • Не могут содержать в названии никаких символов, кроме букв латинского алфавита.
  • Название класса должно быть существительным. Надо стараться избегать ненужных сокращений и аббревиатур.

Примеры:

namespace Bitrix\Main\Localization;
namespace Bitrix\Main\Entity\Validator;

Сокращения, не являющиеся общепринятыми (в Bitrix Framework), использовать нельзя.

Внимание! В тексте примеров на страницах курсов, как правило, будут отсутствовать упоминания о пространствах имён. Это делает текст читабельнее и проще для восприятия. Перед использованием примеров из документации в ваших проектах необходимо добавить неймспейс.

Это можно сделать:

  • Используя PHPdoc
  • Используя IDE
  • кроме того, из контекста документации, как правило, понятно о каком классе идет речь.

Допустимо сокращение полной записи. Вместо \Bitrix\Main\Class::Function() можно писать Main\Class::Function().


Также допустимо и использование синонимов, вместо длинных пространств имен. Для этого необходимо использовать use. Например, мы имеем длинную конструкцию:

\Bitrix\Main\Localization\Loc::getMessage("NAME");

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

use \Bitrix\Main\Localization\Loc;
...
Loc::getMessage("NAME");

Список ссылок по теме:


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

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