(это просто теоретический вопрос, и он не предназначен для сервера в качестве хорошего примера)
допустим, я пишу какую-то форму orm, и все разработчики должны использовать этот класс, возможно ли запретить создание экземпляров определенного класса std в php, чтобы убедиться, что не будет установлено другое соединение с этой базой данных?
Например, mysqli не должен быть в состоянии быть построенным.
Возможно ли это техническое?
Спасибо
… но ничего из этого не идеально.
Если вы не хотите, чтобы кто-то был инстанцировать mysql/i
, mongodb
или лайки, вы можете просто выгрузить расширение. Тогда ваш ORM должен будет использовать другой класс соединения.
Там это хорошее расширение называется runkit который содержит все функции, которые вы никогда не должны использовать. Можно удалить методы из классов, чтобы можно было перезаписать конструктор класса, который вы хотите заблокировать. Нужно ли упоминать, что это действительно плохая идея?
… Есть отзывы кода. Вы можете подумать, что это не мешает кому-то использовать mysqli
, но:
Правильно просмотрите ваш код. В любом случае, это часть хорошего стиля кодирования, который предотвращает использование плохих решений для навязывания хороших решений и допускает исключения в случае необходимости.
Других решений пока нет …