Использование use

309
09 февраля 2017, 03:05

Допустим, есть класс Mysql который должен быть в пространстве lib

И классы Library с Engine которые живут в пространстве engine

Допустим, я хочу писать по человечески не используя тысячи объявлений use и не обращаясь к классам через\нескончаемые\вагоны\пространства\имен

Сейчас надо делать как-то так

namespace lib;
use engine\Engine as Engine;
use engine\Library as Library;

class Mysql extends Library {
    public function Init() {
       Engine::Say('Test');
    }
}

Можно ли делать как-то так?

namespace lib;
use engine; // Вжух, и все пространство имен "распаковано" сюда
class Mysql extends Library {
    public function Init() {
       Engine::Say('Test');
    }
}

Или так?

use engine; // Вжух, и все пространство имен "распаковано" сюда
// Говорим, что Mysql теперь в lib без всяких namespace
class lib\Mysql extends Library {
    public function Init() {
       Engine::Say('Test');
    }
}

Кто как вообще избегает всей этой каши?

Answer 1

Прям так нельзя, но можно короткий псевдоним:

namespace lib;
use engine as E; // Вжух, и все пространство имен "распаковано" сюда
class Mysql extends E\Library {
    public function Init() {
       E\Engine::Say('Test');
    }
}
READ ALSO
Что работает быстрее: if+include или просто if?

Что работает быстрее: if+include или просто if?

ЗдравствуйтеПодскажите, какой код будет работать быстрее?

261
Как сделать доступ к файлу через пароль

Как сделать доступ к файлу через пароль

Надо сделать так: на сервере есть файл texttxt(к примеру) и ещё два файла pass

315
Curl. Ошибка 302. followlocation не помогает

Curl. Ошибка 302. followlocation не помогает

Привет всемПытаюсь получить контент страницы "http://www

311