2017-02-09 1 views
2

Nous avons un client, qui voulait intégrer Dokuwiki dans Wordpress d'une manière, que seuls les utilisateurs qui sont connectés dans Wordpress ont accès au wiki. J'ai donc écrit un plugin d'authentification Dokuwiki qui inclut les corefiles Wordpress nécessaires pour vérifier l'état de connexion.Dokuwiki Authentification Plugin - Impossible de redéclarer is_ssl()

Mon problème est Wordpress ainsi que Dokuwiki ont tous deux une fonction is_ssl() et il en résulte une "Erreur fatale: Impossible de redéclairer ..". L'approche rapide et sale consistait à éditer le corefile Wordpress en ajoutant if (! Function_exists ('is_ssl')) dans /wp-includes/load.php. Malgré le fait, que cela ne devrait pas être fait, il doit être réentré chaque fois que Wordpress reçoit une mise à jour, mais je ne peux pas trouver ou trouver une meilleure solution.

Répondre

1

Idéalement, les deux projets doivent utiliser un espace de noms approprié pour éviter ces problèmes. Mais les deux projets sont également anciens (à partir de PHP4 fois) et ont de grandes bases d'utilisateurs, ce qui signifie que les changements ne peuvent être introduits que lentement et avec soin en prenant soin de la rétrocompatibilité.

Il n'y a pas de bonne solution pour votre problème, à l'exception de certaines extensions php ésotériques comme runkit qui permettent de redéfinir ou de renommer des fonctions.

Votre meilleure approche consiste à envoyer une requête d'extraction à Wordpress et/ou DokuWiki en leur demandant d'intégrer votre vérification function_exists. DokuWiki pourrait être un peu plus facile à aborder ;-)

Avertissement: DokuWiki auteur ici