本体改造せずにプラグインでできる範囲を広げたい†
- ページ: BugTrack
- 投稿者: はいふん
- 優先順位: 低
- 状態: 提案
- カテゴリー: 本体新機能
- 投稿日: 2022-05-10 (火) 22:42:35
- バージョン: 1.5.4
メッセージ†
本体改造の必要なプラグインは初心者にとって苦労すると思います。
ですので、少しずつでもいいので本体改造が不要なプラグイン開発をするためのAPI、機能などを提供するといいのでは、と考えました。
例えば、pukiwiki.skin.phpなどで関数を呼び出すように改造しないといけないものがあり、この手間を省くために予めプラグインでplugin_xxx_loadのような関数を定義し、本体から呼び出すようにする。ただ、全てのプラグインにplugin_xxx_loadのような関数が存在するかチェックするため、処理が多くなると思います。
また、ナビゲーションバーやツールバーもプラグインから拡張できるようになるといいかなと思います。
- ロード対象のプラグインを pukiwiki.ini.php で指定する
- BugTrack/2454 にもあるように lib/pukiwiki.php などといった特定の場所で関数を呼ばれるようにする
- 特定の関数をフックする*1
- Navigation bar や Toolbar の拡張
- 関連: BugTrack/2454 スパムフィルタやreCaptchaを本体の変更なしで組み込めるようにする -- umorigu
- いいですね。私が加わってからはこの方針「過去、本体改造によって行われていたカスタマイズを本体改造なしで行う」を重視して開発していました(BugTrack/2525, BugTrack/2247, official:TextSearch等)。ただ、ある時点で存在するプラグインをすべてロードするのはパフォーマンスペナルティが大きく、また初期化タイミングが変わることによるプラグイン動作の変化(誤動作)も考えられるので、 pukiwiki.ini.php でロード対象のプラグインを指定するような仕組みをBugTrack/2454では考えていました。あとは、具体的にどういう実装にすればどういう本体改造が不要になるか、の具体案が必要です。 -- umorigu
- ロードするプラグインをpukiwiki.ini.phpで設定して読み込ませるのは良さそうですね。 -- はいふん
- 本体改造とは違いますがこういったのが標準であるとFTPなど通さずに出来るので便利ですね。 BugTrack/643 , official:自作プラグイン/config.inc.php -- 名無し
- プラグインを管理用パネルから導入して自動的にロード可能なプラグインを判定し、pukiwiki.ini.phpでロードするプラグインを設定できるととても良さそうですね。ただ、管理用パネルの実装とメンテナンスが大変そうですね... -- はいふん
- config.inc.phpこれ便利ではありますが、セキュリティとのトレードオフになります。Webサーバーのプロセスにphpファイルを書き換える権限(Permission)を与えることになるので、一つ間違えるとセキュリティホールになります。一般的には推奨されません。ユーザーカスタマイズとして存在するのは良いのですが、公式に提供するのは難しいですね -- umorigu