У нас есть клиент, который хотел интегрировать Dokuwiki в WordPress таким образом, чтобы только пользователи, вошедшие в WordPress, имели доступ к вики. Поэтому я написал подключаемый модуль аутентификации Dokuwiki, который включает в себя необходимые файлы WordPress для проверки состояния входа в систему.
Моя проблема в WordPress, так как в Dokuwiki есть функция is_ssl (), и это приводит к «фатальной ошибке: невозможно переопределить ..». Быстрый и грязный подход состоял в том, чтобы отредактировать основной файл WordPress, добавив if (! Function_exists (‘is_ssl’)) в /wp-includes/load.php. Несмотря на то, что этого не следует делать, его нужно вводить каждый раз, когда WordPress получает обновление, но я не могу найти или найти лучшее решение.
В идеале оба проекта должны использовать правильное пространство имен, чтобы избежать этих проблем. Но оба проекта также древние (начиная с PHP4) и имеют большие пользовательские базы, что означает, что изменения могут быть внесены только медленно и осторожно с заботой о обратной совместимости.
Нет хорошего решения вашей проблемы, кроме некоторых эзотерических расширений php, таких как runkit, которые позволяют переопределять или переименовывать функции.
Лучше всего отправлять запросы на извлечение в WordPress и / или DokuWiki с просьбой интегрировать вашу проверку function_exists. Возможно, к DokuWiki проще подходить 😉
Отказ от ответственности: автор DokuWiki здесь
Других решений пока нет …