- 追加された行はこの色です。
- 削除された行はこの色です。
* Warning with allow_call_time_pass_reference = Off [#xdb26855]
- 元タイトル: pcomment, ls2プラグインにおけるWarning出力の修正
- ページ: [[BugTrack2]]
- 投稿者: [[Ratbeta]]
- 優先順位: 重要
- 状態: 着手
- 状態: 完了
- カテゴリー: プラグイン
- 投稿日: 2006-06-28 (水) 21:42:48
- バージョン:
- バージョン: 1.4.7
** メッセージ [#f6907971]
[[BugTrack2/106]], [[official:PukiWiki/Install/xrea.com#sd27a494]]の関連です。
最近のバージョンのphpで、php.iniに次の設定を行った場合に、warningが出力されます。
allow_call_time_pass_reference = Off
なお、この設定は、xrea.comなどのサーバが適用していますが、特有のものではなく、php.iniの推奨設定とされております。
多くの場合に関しては[[BugTrack2/106]]の方で修正が完了しておりますが、
array_walk関数を使用するls2, pcommentの両プラグインに関しては修正されておりませんので、修正パッチを掲載しておきます。
***警告メッセージ (pcommentの場合) [#z0da429b]
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like
to pass it by reference, modify the declaration of array_walk(). If you would like to enable call-time
pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future
versions may not support this any longer. in /pukiwiki/pukiwiki/plugin/pcomment.inc.php on line 87
***修正パッチ [#t0281abf]
Index: plugin/pcomment.inc.php
===================================================================
RCS file: /cvsroot/pukiwiki/pukiwiki/plugin/pcomment.inc.php,v
retrieving revision 1.43
diff -u -r1.43 pcomment.inc.php
--- plugin/pcomment.inc.php 4 Oct 2005 14:31:22 -0000 1.43
+++ plugin/pcomment.inc.php 29 Jun 2006 12:10:02 -0000
@@ -80,7 +80,11 @@
// BugTrack2/106: Only variables can be passed by reference from PHP 5.0.5
$args = func_get_args(); // with array_walk()
- array_walk($args, 'plugin_pcomment_check_arg', & $params);
+ foreach ($args as $key => $arg)
+ {
+ plugin_pcomment_check_arg($arg, $key, $params);
+ }
+// array_walk($args, 'plugin_pcomment_check_arg', & $params);
$vars_page = isset($vars['page']) ? $vars['page'] : '';
$page = (isset($params['_args'][0]) && $params['_args'][0] != '') ? $params['_args'][0] :
Index: plugin/ls2.inc.php
===================================================================
RCS file: /cvsroot/pukiwiki/pukiwiki/plugin/ls2.inc.php,v
retrieving revision 1.23
diff -u -r1.23 ls2.inc.php
--- plugin/ls2.inc.php 5 Dec 2004 11:37:37 -0000 1.23
+++ plugin/ls2.inc.php 29 Jun 2006 12:34:39 -0000
@@ -66,7 +66,11 @@
}
if ($prefix == '') $prefix = strip_bracket($vars['page']) . '/';
- array_walk($args, 'plugin_ls2_check_arg', & $params);
+ foreach ($args as $key => $arg)
+ {
+ plugin_ls2_check_arg($arg, $key, $params);
+ }
+// array_walk($args, 'plugin_ls2_check_arg', $params);
$title = (! empty($params['_args'])) ? join(',', $params['_args']) : // Manual
str_replace('$1', htmlspecialchars($prefix), $_ls2_msg_title); // Auto
以前にどこかで「一筋縄ではいかない修正」とコメントされておられたので、この単純な変更には問題がありそうなのですが、php.iniの推奨設定とされていることもあるので、新たにBugTrackを立てさせさせていただきました。
--------
- ありがとうございます :) 拝見します -- [[henoheno]] &new{2006-06-29 (木) 00:05:47};
-- [[cvs:plugin/ls2.inc.php]] (1.24) ご指摘の通り。試した範囲では array_walk() 版と同一の結果を返している様です。 -- [[henoheno]] &new{2006-08-06 (日) 22:18:17};
- pcommentについても同様の問題が残されておりますが…、これに関してはパッチを取り込む予定はありませんでしょうか。 -- [[Ratbeta]] &new{2006-10-01 (日) 22:35:27};
- こちらの件、ls2, pcomment ともに修正しました。改めて見直すに、plugin_xxx_check_arg() の第二引数は、array_walk() からコールするがゆえに存在していた仮のものでしたから、そこも含めて本来の形へと修正しました。その他若干整理。 -- [[henoheno]] &new{2006-10-04 (水) 22:41:36};
-- [[cvs:plugin/ls2.inc.php]] (1.25)
-- [[cvs:plugin/pcomment.inc.php]] (1.44)
- このBugTrackは、今後類似の話題をまとめるために活用して下さい。 -- [[henoheno]] &new{2006-10-04 (水) 22:43:37};
- ChangeLog より -- &new{2011-11-23 (水) 16:33:00};
-- [[cvs:lib/func.php]] (1.83) -- 2006-10-28 23:35
-- [[cvs:plugin/online.inc.php]] (1.12) -- 2007-02-10 15:21
- ここまでの修正項目を収録したバージョン: [[BugTrack2/355]] 1.5.0リリースに向けて -- &new{2015-02-16 (月) 19:08:33};
#comment
//#comment