Расскажу, пожалуй, про константы в NS.
Если используете константу в пространстве имён то интерпретатор с начало ищет в текущем пространстве имён, если не находит то берёт из корневого пространства имён (на на самом деле там просто ссылка на коренную константу по умолчанию, никакого двойного поиска там нет). Это свойство я использую для частичного дебага (не всего кода, а из нужных пространств имён). Так, например, в коде у меня расставлены
DEBUG && Log::debug("some debug data");
благодаря этому, определяя DEBUG в нужных мне пространствах имён (дешево и сердито), я могу получить дебаг-информацию из нужных NS.
Насчет define(). там нужно указывать полное имя константы с пространством имён:
define('MyNS\DEBUG', 1);
Аналогично работают и функции, но их свойство я не особо использую.
Да везде так, даже на docs.php.net. Однако усложняет то, что в ссылке параметр beta не проставляется и при переходах всё возвращается в старый дизайн. Я бы уже новым дизайнм пользовался.
Кстати, там же тестируется новый дизайн php.net (для активации добавить get параметр ?beta=1) www.php.net/manual/ru/?beta=1
наконец-то нормальный саджест на поле поиска с русским описанием.
Если используете константу в пространстве имён то интерпретатор с начало ищет в текущем пространстве имён, если не находит то берёт из корневого пространства имён (на на самом деле там просто ссылка на коренную константу по умолчанию, никакого двойного поиска там нет). Это свойство я использую для частичного дебага (не всего кода, а из нужных пространств имён). Так, например, в коде у меня расставлены
благодаря этому, определяя DEBUG в нужных мне пространствах имён (дешево и сердито), я могу получить дебаг-информацию из нужных NS.
Насчет define(). там нужно указывать полное имя константы с пространством имён:
Аналогично работают и функции, но их свойство я не особо использую.
www.php.net/manual/ru/?beta=1
наконец-то нормальный саджест на поле поиска с русским описанием.