Pukiwiki 1.5.4 RCを試してみた。
PHP 8.1に対応したpukiwiki 1.5.4のRCがリリースされていたので、早速このサイトに適用してみました。とは言っても、このサイトのpukiwikiはスキン以外にもかなりあちこちに手を入れているのでずいぶんと苦労しました。今でもまだ正しく表示されていないページもありますが、ひとまず動く状態にはなったので一段落。
PHP 8はエラーに厳しい
PHP 7.4に比べてPHP 8の優位性はそのスピードです。PHPなどをキャッシュ化させるなどして動作速度を向上させたJIT機能の実装などで、WordpressなどのPHPで動くサイトは表示が高速化されるようです。
一方で、今までPHPは型の違いとかクオーテーションマークの抜けを見逃してくれてたのにPHP 8はそう甘くなくてPHPエラーが出まくります。本当にPHP 7.4までと比べて修正すべき点が多数あります。なかなかエラーに気がつけず修正に時間がかかった点もありました。
例えば自作のogp.inc.phpプラグイン
例えば今まで自作のOGPカード表示プラグインogp.inc.phpを使っていましたが、どうしてもこのプラグインを使用するページでエラーが出ます。これの原因は下記のようなチョットした表記ミスでした。PHP 7.4までなら見逃してくれていたのに、PHP 8は見逃してくれません。
// 誤りの例 $title = $ogpcache[title]; // 正しい例 $title = $ogpcache["title"];
当サイトで改造して使用していたプラグインをひとまず置いておきます。使用は、かならずバックアップを取ってから、自己責任でお願いします。
ogp.inc.php //OGPカード表示プラグイン
tweet.inc.php //ツイート引用プラグイン
ref.inc.php //画像のlazyloadやwebP fallbackなどを実装済み
URL短縮プラグインは動く
一番心配していたURL短縮プラグインは、PHP 8.0でも動作しました。これが動かせない場合はページ名が変わってしまうところが多数出るので、ちゃんと動いてホッとしました。バリューサーバーがPHP 8.1に対応していないのでまだ試せていませんが、おそらくPHP 8.1も大丈夫でしょう。
pukiwiki 1.5.4RCの短縮プラグイン用
pukiwiki 1.5.4版のlib/func.phpとlib/make_link.phpをそれぞれ短縮URL用に置き換える必要がありますので、当サイトで今回書き換えたものを置いておきます。
動かなくなっているプラグイン
PHP 7.4までは問題なく使えていたのにPHP 8.0になって使えなくなってしまったプラグインもあります。
代表的なところではsonotsさんのサイトで公開されていた #contentsx や #tag プラグインが使えなくなっています。#includex も使えませんね。sonotsさんのプラグインは非常に高機能で魅力的ですが、sonotsさん自身はもうpukiwikiの開発からは身を引くと宣言されており、これらのプラグインがPHP 8対応になる見込みはほとんどないと言わざるを得ません。一括置換プラグイン(regexp.inc.php)も動かないので、現状では動作させたいときは一旦PHP 7.4環境に戻してから一括置換するなどの対応が必要です。
また便利で多用されているプラグインとしてはattachref.inc.phpも動きませんね。
対応してほしいなぁと思うプラグイン
動作しないプラグインが少なくないため、現在は一旦Pukiwiki 1.5.4のままでPHP 7.4に戻しています。
高速化の恩恵も
なぜそこまでしてPHP 8に対応するかですが、一番大きなメリットは高速化ではないでしょうか。PHP 8は様々な高速化のための工夫をこらしており、とくにJITはPHPの動作速度を大きく向上させると期待されています。
試しにTTFB(Time to First Byte)を測定してみたところ、従来と比べて30%ほどは速くなっている印象です。1ヶ月あたりのレンタルサーバー代金が400円を切っているバリューサーバーのスタンダードプランでこれだけのTTFBが出ていれば十分ですね?
しかも来月にはバリューサーバーのスタンダードプランのレンタルサーバーはCPU・メモリ強化や全SSD化などの高速化のためのバージョンアップが予定されているので、これよりさらに速度向上する可能性があります。楽しみですね!
ちなみにPHP 7.4から8.0にしてTTFBは少し速くなっている。バリューサーバーで200ms切ることはあまりなかったが、今は東京大阪で114msと140msになっている。30〜40%短縮されている印象。 pic.twitter.com/Go7I4eepVB
— レ点.bot💉💊🧬 (@m0370) November 26, 2021
関連記事
この記事に対するコメント
このページには、まだコメントはありません。
添付ファイル: ogp.inc.php 515件 [詳細] tweet.inc.php 445件 [詳細] ref.inc.php 460件 [詳細] make_link.php 459件 [詳細] func.php 440件 [詳細]
更新日:2021-11-27 閲覧数:4792 views.