Вчера я задал вопрос о пространствах имен, на которые получил ответ, и поэтому я задержался. Однако чем дальше я углубляюсь в это, тем больше осознаю, что мне действительно хотелось бы иметь возможность генерировать пространства имен на лету. Причина в том, что у меня есть каталог плагинов, куда включаются все файлы. Если кто-то из моей компании делает плагин ... или сторонний, я не хочу, чтобы он беспокоился о пространствах имен. Я хотел бы просто генерировать пространства имен на лету по структуре каталогов. Вы говорите: «Почему бы просто не сделать это!» Ну, я так и сделал, но я понимаю, что у меня все еще есть потенциальная проблема с именами классов, и пространства имен разрешат эту проблему. Пакеты также решили бы эту проблему, но я не могу найти, что php поддерживает их.
-plugin
-tabs
+tabs.php
-package
-tabs
+tabs.php
Идея состоит в том, чтобы иметь доступ к классам с помощью $ tabs-> func () и $ package_tabs-> func ();
Опять же, это не проблема, за исключением того, что классы могут быть названы одинаково.
У меня есть обходной путь, но если кто-нибудь знает обходной путь для динамического создания пространств имен на лету, было бы интересно услышать.
Единственная проблема, которую я вижу, состоит в том, что PHP создает пространство имен во время «компиляции». Поэтому использование чего-то вроде fsocks для передачи в пространство имен было неудачной попыткой.