PHP7環境に導入

プラグイン

最近更新のないプラグインはエラーになります。
phpの設定でエラーを表示するようにしていればエラー該当箇所と対処が表示されるのでその通りに修正すれば概ね動く。
主なものは、

-register(&$controller)
+register(Doku_Event_Handler $controller)
 
-render($format, &$renderer, $data)
+render($format, Doku_Renderer $renderer, $data)
 
-handle($match, $state, $pos, &$handler)
+handle($match, $state, $pos, Doku_Handler $handler)

の3つ。
それぞれのプラグインのソースを修正すればオッケー。

消えた関数

PHP7で消えた関数がいくつかあるのでその関数を使用しているとページが何も表示されない等が発生します。
自分の環境で引っかかったのは split() でした。
PHP5時代から非推奨となっていたのがついに消えたわけです。
sitetocのサイドバーとdlcountのプラグインで使用されてました。
特に正規表現を使った呼び出しじゃないのでそれぞれ explode() に書き換えれば修正完了。
dlcountはdokuwiki公式のプラグイン該当ページに修正方法が書いてありました。
https://github.com/dmak/dokuwiki/commit/ae10f61a2450ac8853907f2174f82f02222e7834

dokuwiki/php7.txt · 最終更新: 2017/03/24 23:27 by pokan
CC Attribution-Noncommercial-Share Alike 3.0 Unported
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0