#author("2021-12-11T13:11:49+09:00","","")
#author("2021-12-15T18:36:53+09:00","","")
[[Project-8]]

-PHP8でプラグイン互換性がより問題になることが分かったので[[BugTrack/2471]]を受けて、プラグインをPHP8対応にする情報を集めるページを作りました -- [[umorigu]] &new{2021-11-28 (日) 15:53:35};
-ここにはPHP8で動かなくなったプラグインを書けば良いのでしょうか?SonotsさんのPukiWikiプラグインはほぼ動かなくなっています(pukiwiki.sonots.com)。classを多用しているものがPHP 8未対応のようです。 -- [[-]] &new{2021-11-29 (月) 17:42:05};
-- classのコンストラクタで問題があるプラグインはclassと同じ名前の関数(コンストラクタ)を"__construct"へ修正すると動作する可能性があります。 -- [[はいふん]] &new{2021-11-29 (月) 22:33:00};

例えばtag.inc.phpの場合はクラスが3箇所(PluginTag, Tag, TagCloud)あります。
 class PluginTag extends Tag
 {
     function PluginTag()
     {
         (省略)
     }
     (省略)
 }
上記のソースにある"function PluginTag()"を下記のソースのように"function __construct()"と変更します。
 class PluginTag extends Tag
 {
     function __construct()
     {
         (省略)
     }
     (省略)
 }
--早速情報ありがとうございます。いったん動かないプラグインの情報をコメントで集めることにしましょう。 -- [[umorigu]] &new{2021-12-01 (水) 00:17:31};
--ということでsonotsさんのプラグインのファイルの中身確認してみたらGPLだったので修正してみました。
>>
[[official:自作プラグイン/tag.inc.php]]~
[[official:自作プラグイン/includex.inc.php]]~
[[official:自作プラグイン/contentsx.inc.php]]~
[[official:自作プラグイン/lsx.inc.php]]~
[[official:自作プラグイン/markdown.inc.php]]~
[[official:自作プラグイン/regexp.inc.php]]~
[[official:自作プラグイン/replaceplugin.inc.php]]~
[[official:自作プラグイン/votex.inc.php]]
>PHP8の影響なのか修正箇所がいろいろありました。例えば、''array(hoge, 'hello world')'' → ''array('hoge', 'hello world')''、''$hoge{0}'' → ''$hoge[0]''のように文法が少し厳しくなったように思えます。 -- [[はいふん]] &new{2021-12-15 (水) 17:04:54};

- [[official:自作プラグイン/1]]のattachrefプラグインを修正したところ、コメントアウトが以下のようにミスっていました。PHP8からはこの構文のミスはエラーとなり見逃してくれないようです。 -- [[はいふん]] &new{2021-12-11 (土) 11:11:51};
 $//args = split(",", $vars['attachref_opt']);
--これはなんというかこれまで動いていたのが不思議ですね -- [[umorigu]] &new{2021-12-11 (土) 13:11:49};


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.030 sec.

SourceForge