2017-02-09 72 views
2

我們有一位客戶,他想以某種方式將Dokuwiki集成到Wordpress中,只有在Wordpress中登錄的用戶才能訪問該wiki。所以我寫了一個Dokuwiki身份驗證插件,其中包含必要的Wordpress核心文件來檢查登錄狀態。Dokuwiki身份驗證插件 - 無法重新聲明is_ssl()

我的問題是Wordpress以及Dokuwiki都有一個函數is_ssl(),它導致「致命錯誤:不能重新聲明..」。快速和骯髒的方法是通過在/wp-includes/load.php中添加if(!function_exists('is_ssl'))來編輯Wordpress核心文件。儘管如此,不應該這樣做,但每次Wordpress獲得更新時都必須重新進入,但我無法想出或找到更好的解決方案。

回答

1

理想情況下,兩個項目都應該使用適當的命名空間來避免這些問題。但這兩個項目都是古老的(從PHP4時代開始),並且擁有龐大的用戶基礎,這意味着只有慢慢仔細地引入變化才能保證向後兼容。

除了允許重新定義或重命名函數的runkit等一些深奧的php擴展外,沒有好的解決方案可以解決您的問題。

你最好的辦法是向Wordpress和/或DokuWiki發送一個拉請求,要求他們整合你的function_exists檢查。 DokuWiki可能有點容易接近;-)

聲明:DokuWiki作者