#9.3 php Вложенные пространства имен. Импортирование элементов (use) и задание псевдонимов

Вложенные пространства имен

Используя слеши (\), пространство имен можно определить с произвольным количеством вложенных подпространств на различных уровнях вложенности. Например,

<?php
namespace php8\my\full\classes;

class myClass
{
    public function __construct()
    {
        echo "Создание нового объекта<BR>";
    }
}

При таком определении иерархии подпространств, находясь внутри пространства имен php8 верхнего уровня, можно использовать относительное имя my\full\classes\myClass для обращения к классу myClass:

<?php
namespace php8;

include "classes.php"; //подключаем файл с описанием пространства имен

$obj = new my\full\classes\myClass;

Аналогично, внутри пространства php8\my можно убрать ещё один уровень при обращении к данному классу и использовать имя full\classes\myClass.

Импортирование (use) элементов пространства имен. Псевдонимы

Импортирование и задание псевдонимов является ещё одним преимуществом использования пространств имен, которое позволяет избегать черезчур длинных имен функций, констант и классов.

Ключевое слово use позволяет импортировать функции, классы, трейты, интерфейсы, константы и целые пространства имен, а конструкция

use element as alias;

позволяет задавать псевдонимы для обращения к импортированным элементам.

При импортировании элемента всегда используется его полное квалифицированное имя без ведущего слеша. Например, в результате импорта php8\my\full\classes\myClass в глобальное пространство имен

<?php
include "classes.php";

use php8\my\full\classes\myClass;

в дальнейшем можно обращаться к классу myClass просто по имени без префикса:

$obj = new myClass;

Можно также задать псевдоним для импортируемого элемента:

<?php
include "classes.php";

use php8\my\full\classes as myClasses;

$obj = new myClasses\myClass;