Мне интересно, является ли это хорошей или плохой практикой и что может быть лучшим решением для этого случая. По сути, у меня есть реестр PHP, который может создать экземпляр или вернуть существующий экземпляр объекта класса, указав:
$classObject = $this->registry->getClassInstance(ObjectPath);
ObjectPath в данном случае является пространством имен, потому что так настроен мой проект. Таким образом, полностью рабочий пример будет:
$mysqli = $this->registry->getClassInstance('\application\models\Database\drivers\MySQLi');
Однако вместо того, чтобы каждый раз вручную вводить пространство имен класса, я вместо этого:
$mysqli = $this->registry->getClassInstance($this->registry->mySQLiDriver());
который возвращает пространство имен, облегчая использование и обновление проекта. Это плохая идея, хотя? Известны ли лучшие практики для достижения того же результата?
Он считает, что вы должны использовать композитор, чтобы сделать это автоматически для вас. Это отличный инструмент: https://getcomposer.org/
Он автоматически определяет, что нужно создать на основе предоставленного вами пространства имен.
Однако, если вы действительно хотите сделать это самостоятельно, я бы не рекомендовал вам использовать абсолютные пути из корня вашего приложения.
Других решений пока нет …