Пространства имён в PHP
Создано Евгений Злобин в января 28, 2010Что такое пространства имён?
Пространства имён – некоторое абстрактное хранилище, которое позволяет группировать уникальные идентификаторы.
Какие проблемы?
Все определения классов в PHP глобальны, в связи с этим необходимо постоянно выбирать уникальные имена для классов. Это делается для того, чтобы не происходило конфликтов имён при работе с другими библиотеками. На данный момент различных “соглашений” о наименовании достаточно для защиты классов от “наложений”, например PEAR.
Зачем оно надо?
Концепция пространства имен позволяет управлять зонами видимости имён и помогает избегать проблем, возникающих при определении классов с одинаковыми именами. Всё это избавляет от необходимости использовать длинные имена и префиксы в названии классов. Что соответсвенно служит повышению читабельности кода.
Что теперь?
На данный момент пространства имён уже реализовано в PHP начиная с версии 5.3.0.
Примеры.
Для объявления пространства имён используется ключевое слово namespace. Предположим у нас есть “пакет” коммерция. Пространства имён определяются на уровне файла, а само объявление должно быть первым оператором в файле:
<?php
namespace commerce; // определим новое пространство имён
class shop {
// ...
}
?>
Пространства имён можно импортировать при помощи оператора use:
<?php
use commerce;
require_once('lib.php');
?>
Можно импортировать от одного или несколько пространств имён. Помимо этого для пространста имён можно использовать псевдонимы, которые позволят создавать более короткие имена:
<?php
use commerce\shop\lib as CSL;
?>
Также существует константа __NAMESPACE__ которая возвращает текущее простраство имён:
<?php
namespace commerce\shop;
echo __NAMESPACE__; // выведет: commerce\shop
?>
Более подробно с правилами разбора имён можно ознакомится в официальной документации.
Постовые:
Автомобильный портал от крупнейшей газеты объявлений “Из рук в руки”. Крупный каталог автомобилей с фото. Мы найдём авто и для тебя.
Объявления о недвижимости. Московские агентства недвижимости. Продажа квартир. Частники и агентства недвижимости.


Пространства имен больше полезны в библиотеках. В своем проекте, если конфлик возникнет, то и заменить недолго. Традиционно, а не только в ПХП.
А в ПХП (с учетом наличия исходников) и для библиотек актуальность существено снижается.
Просто имен – дополнительный элемент инкапсуляции, абстрагирования и структурирования. В ПХП еще актуальность не на раз не снижается.
Интересно, каждое добавление к пхп должно, как-то ускорять производственный процесс, но это пространство имён делает упор только на “разложение всё по полочкам”
“Можно импортировать от одного или несколько пространств имён”
Нужная функция! Удобно с ней работать)
Мое мнение таково, что пространства имен более чем актуально, так нет его достойной замены.