menu
書いてる野郎
orebike@gmail.com
以前のバージョンが 2018-04-22c Greebo ということでなんと 2年以上あけてのバージョンアップ。
そもそもアップデートプラグインのバージョンを上げろという話から、そこのメッセージで手動で上げろという指示があったので、久々の手動アップロードいくつか問題が発生したのでメモ
とりあえず必ずバックアップはとっておいたほうがよい。トラブル。
普通に上書きインストールしてキャッシュを消すまでは今まで通り、しかし動かない問題。
PHP 5.6 環境で動いた
一部外部と通信するためのプラグインが HTTPClient.php を使っているのだが、最新版ではその位置が
inc/HTTPClient.php
から
inc/HTTP/HTTPClient.php
に変更になっているので、
このように include しているところを
require_once(DOKU_INC.'inc/HTTPClient.php');
このように書き換える必要がある
require_once(DOKU_INC.'inc/HTTP/HTTPClient.php');
dokuwiki の plugin には handler と render というインターフェースを実装する必要があるのだが、そのシグネチャが最新版では微妙に違う。
そのことで↓のようなエラーが出る
Fatal error: Declaration of syntax_plugin_hoge::handle() must be compatible with dokuwiki\Extension\SyntaxPlugin::handle($match, $state, $pos, Doku_Handler $handler) in /hoge/piyo/fuga/lib/plugins/hoge/syntax.php on line 0
実際のこの部分のコードはこのようになっている
function handle($match, $state, $pos, &$handler){
なのでこいつを指示にあるように書き換える
function handle($match, $state, $pos, Doku_Handler $handler){
render も同様にこのようなエラーが出るので書き換える
Fatal error: Declaration of syntax_plugin_hoge::render() must be compatible with dokuwiki\Extension\SyntaxPlugin::render($format, Doku_Renderer $renderer, $data) in /hoge/piyo/fuga/lib/plugins/hoge/syntax.php on line 0
これを
function render($mode, &$renderer, $data) {
このようにする
function render($mode, Doku_Renderer $renderer, $data) {
↑いちおうここまでの対応で動いた。