Статический класс или пространство имен PHP

Я хочу узнать мнение людей об использовании статических классов вместо пространств имен. Я родом из C++, и мне очень нравится его синтаксис и то, как он позволяет вам структурировать код. Недавно я решил, что мне нужно сгруппировать свой код в логические блоки, а не просто в файлы. Например, я предпочитаю такие вызовы, как вход пользователя ::для входа пользователя _. Итак, я немного погуглил и с облегчением обнаружил, что в PHP есть пространства имен. Однако мое облегчение длилось недолго, мне действительно не нравится синтаксис; это добавляет больше беспорядка в мои вызовы функций. Итак, на данный момент я использую статические классы для имитации пространств имен. Есть ли в этом недостатки?

Я нашел аналогичный вопрос в PHP Namespaces vs Classes with static functions , но особого обсуждения не было.

Кроме того, есть ли способ избежать следующей ситуации:

class Test {
 public static void myFunc() {
  Test::myOtherFunc();
 }
 public static void myOtherFunc() {

 }
}

Я предположил, что можно было бы вызывать функции в одном классе без указания имени, но, видимо, это не так. Существуют ли какие-либо обходные пути для этого (, например, в C++ есть ключевое слово using ).

5
задан Community 23 May 2017 в 11:59
поделиться