#author("2022-12-03T00:26:02+09:00;2022-12-03T00:25:02+09:00","","")
#author("2022-12-03T14:30:19+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};

---はいふんさん、ありがとうございます。素晴らしいです!できればなのですが、OSDN.jpの [[PersonalForge>osdn.net:docs/About_PersonalForge]] や [[GitHub>github.com:umorigu/]] のような、変更がトレースできて、個人が放っておいても維持される可能性の高い場所での公開をお願いできないでしょうか?これらの場所ならInterWikiでリンクもはれます。私も少し使っています。 [[osdn.net:users/umorigu/pf/pukiwiki15]] -- [[umorigu]] &new{2021-12-15 (水) 21:48:54};
---ありがとうございます!早速使ってみました。 -- [[はいふん]] &new{2021-12-15 (水) 22:46:19};
---仕事がはやい! ありがとうございます -- [[umorigu]] &new{2021-12-15 (水) 22:59:30};
- [[official:自作プラグイン/1]]のattachrefプラグインを修正したところ、コメントアウトが以下のようにミスっていました。PHP8からはこの構文のミスはエラーとなり見逃してくれないようです。 -- [[はいふん]] &new{2021-12-11 (土) 11:11:51};
 $//args = split(",", $vars['attachref_opt']);
--これはなんというかこれまで動いていたのが不思議ですね -- [[umorigu]] &new{2021-12-11 (土) 13:11:49};
-Officialの方にも [[official:Project-8]] を作りました。どちらに何を書くかが難しい。全部devでもよさそうですが・・ -- [[umorigu]] &new{2021-12-15 (水) 22:35:48};
-[[official:自作プラグイン/codehighlight.inc.php]], [[official:自作プラグイン/tvote.inc.php]]&br;こちらのプラグインもphp8に対応させてみました。tvoteについてはcreate_function()が廃止された影響で使えなくなってたみたいですね -- [[はいふん]] &new{2021-12-17 (金) 22:22:46};
-[[s.inc.php>official:Plugins/s.inc.php]] も更新していたのでコメントしておきます -- [[umorigu]] &new{2022-01-23 (日) 15:28:32};
-これまで集まったプラグインの情報を「PHP8で動作するプラグイン情報」 [[Project-8#workon8]] として表にしました。 -- [[umorigu]] &new{2022-01-23 (日) 15:30:18};
-[[official:Plugins/table_edit.inc.php]] をPHP8対応しました -- [[umorigu]] &new{2022-05-06 (金) 17:48:03};
-[[official:Plugins/tracker_plus.inc.php]] をPHP8対応しました -- [[umorigu]] &new{2022-05-07 (土) 00:14:28};
-PukiWiki1.5.4にしたのでPHP8にしようと試みてるのですが、非常に役に立ちました。ありがとうございます! -- [[ぬぺぺ]] &new{2022-10-24 (月) 06:21:30};
--うちは [[htmlinsert>official:Plugins/htmlinsert.inc.php]], [[pkwkmail>official:Plugins/pkwkmail.inc.php]], secedit, table_edit2 がそのままではPHP8では動きませんでした。コンストラクタの追加、静的に呼ばれているclass内の非static関数のstatic化、配列アクセスの{0}を[0]に、get_magic_quotes_gpc()の代替関数の追加(func.phpを参考)、でなんとか動くようにはなりました。 -- [[ぬぺぺ]] &new{2022-10-24 (月) 07:43:33};
--sonotsさんの /sonots/sonots.class.php 系を読み込んでるプラグインがPHP8対応できませんでした。ヘビーすぎる…。なんとか少しずつ修正できないものでしょうか。 -- [[ぬぺぺ]] &new{2022-10-24 (月) 07:48:31};
-同じくsonotsさんのakismet.inc.phpが動作しませんね。(というか、sonotsさんのサイト自体がアクセスできなくなっていますね!今のところinternet archivesから何とかアーカイブにアクセス可能ですが) -- [[m0370]] &new{2022-12-01 (木) 01:30:33};
- [[github.com:m0370/pukiwiki_akismet.inc.php]] akismet.inc.phpをひとまず強引にGoogle reCaptcha v2で動作するようにしてみました。細かいバグ取りなどはまだ確認不十分です。 -- [[m0370]] &new{2022-12-03 (土) 00:25:02};
-- [[github.com:m0370/pukiwiki_akismet.inc.php]] akismet.inc.phpをひとまず強引にPHP8とGoogle reCaptcha v2で動作するようにしてみました。細かいバグ取りなどはまだ確認不十分です。staticなfunctionにstaticと明示するようにしたのと(3箇所 282・358・387行目付近)、classと同じ名前の関数(コンストラクタ)を__constructにした(2箇所)のと、isError(SERVER_NOT_FOUND)をisError('SERVER_NOT_FOUND')とすることでPHP8で動くようになりました。 -- [[m0370]] &new{2022-12-03 (土) 14:25:02};

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新の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.111 sec.

SourceForge