Элегантное и практичное решение для получения полных пространств имен

Сейчас это проклятие моего проекта, а также моих прошлых проектов. Для каждого из них я использовал варианты, которые были далеко не оптимальными.

Проблема: в моем проекте есть реестр, в котором создается экземпляр любого класса, требующий от него передачи ему полного пространства имен, а извлечение этого полного пространства имен может быть проблематичным. Пример:

$registry->getClassInstance('\application\model\SomeModel');

Чтобы получить это полное пространство имен, у меня есть несколько вариантов, все громоздкие:

  1. Введите SomeModel, и PHP найдет пространство имен. Тем не менее, его автозаполнение будет вместо того, чтобы печатать полное пространство имен, напечатает SomeModel () и добавит USE полное пространство имен вверху файла. Если бы среда IDE просто напечатала бы полное пространство имен, где я печатал, эта проблема была бы решена. Вместо этого мне нужно дважды щелкнуть правой кнопкой мыши на окне автозаполнения, чтобы скопировать и вставить полное пространство имен, затем вставить его самому и добавить начальную / к нему, очень громоздкую.
  2. Используйте определенные () константы для пространств имен. Удвоить работу, вдвое снизить производительность и может вызвать ошибки с локальными CONSTS
  3. Создайте объект класса с функциями для извлечения всех пространств имен. Опять много хлопот и непрактично в использовании

    Как сделать ссылки на пространство имен легкодоступными и легко обновляемыми в большом проекте? Как крупные проекты обычно справляются с этим?

0

Решение

Я не понимаю, что вы просите, или что вам действительно нужно.

Могу предложить вам взглянуть на автозагрузчик Symfony. Вы можете использовать его как компонент, без необходимости использовать весь каркас тоже.

Затем вы можете вызывать классы и добавлять пространства имен, как если бы они были пакетами в Java.

Что ответить на твой вопрос?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]