2017-02-09 5 views
2

У нас есть клиент, который хотел интегрировать Dokuwiki в Wordpress таким образом, что только пользователи, которые вошли в Wordpress, имеют доступ к вики. Поэтому я написал Dokuwiki Authentication Plugin, который включает в себя необходимые файловые файлы Wordpress для проверки состояния входа.Плагин проверки подлинности Dokuwiki - не удается redeclare is_ssl()

Моя проблема в Wordpress, а также у Dokuwiki есть функция is_ssl(), и это приводит к «Неустранимая ошибка: Can not redeclare ..». Быстрый и грязный подход заключался в том, чтобы отредактировать ключевой файл Wordpress, добавив if (! Function_exists ('is_ssl')) в /wp-includes/load.php. Несмотря на то, что это не должно быть сделано, его нужно повторно вводить каждый раз, когда Wordpress получает обновление, но я не могу подойти или найти лучшее решение.

ответ

1

В идеале оба проекта должны использовать правильное пространство имен, чтобы избежать этих проблем. Но оба проекта также являются древними (начиная с PHP4 раз) и имеют большие пользовательские базы, что означает, что изменения могут вводиться только медленно и тщательно с учетом обратной совместимости.

Нет подходящего решения для вашей проблемы, кроме некоторых эзотерических расширений php, таких как runkit, которые позволяют переопределять или переименовывать функции.

Ваш лучший подход - отправить запрос на перенос в Wordpress и/или DokuWiki с просьбой интегрировать проверку функции function_exists. DokuWiki может быть немного легче подойти ;-)

Отказ от ответственности: DokuWiki автор здесь