Dokuwiki 身份验证插件 - 无法重新声明 is_ssl()

Dokuwiki Authentication Plugin - Cannot redeclare is_ssl()

我们有一个客户,他想以某种方式将 Dokuwiki 集成到 Wordpress 中,只有登录到 Wordpress 的用户才能访问 wiki。所以我写了一个 Dokuwiki 身份验证插件,其中包括必要的 Wordpress 核心文件来检查登录状态。

我的问题是 Wordpress 和 Dokuwiki 都有一个函数 is_ssl(),它会导致 "Fatal error: Cannot redeclare .."。快速而肮脏的方法是通过在 /wp-includes/load.php 中添加 if(!function_exists('is_ssl')) 来编辑 Wordpress 核心文件。尽管事实上不应该这样做,但每次 Wordpress 获得更新时都必须重新输入,但我无法想出或找到更好的解决方案。

理想情况下,两个项目都应该使用适当的命名空间来避免这些问题。但是这两个项目也都很古老(从 PHP4 时代开始)并且拥有庞大的用户群,这意味着只能缓慢而谨慎地引入更改,同时注意向后兼容性。

除了一些深奥的 php 允许重新定义或重命名函数的扩展 php 之外,没有很好的解决方案。

您最好的方法是向 Wordpress and/or DokuWiki 发送拉取请求,要求他们整合您的 function_exists 检查。 DokuWiki 可能更容易上手 ;-)

免责声明:此处为 DokuWiki 作者