Category::Plugin

bugtrack_list,calander_edit|read,tracker,tracker_listがexist_plugin[_convert]を使っていない

  • ページ: BugTrack2
  • 投稿者: yutaochi?
  • 優先順位: 低
  • 状態: 提案
  • カテゴリー: プラグイン
  • 投稿日: 2005-10-21 (金) 11:45:19
  • バージョン:

メッセージ

プラグインbugtrack_list,calander_edit|read,tracker,tracker_listがexist_pluginなどを用いず,内部でrequire_onceを用いています.

動作には問題ありませんが,修正すべきだと思います.


修正パッチ

--- bugtrack_list.inc.php.orig	2005-10-21 11:53:13.000000000 +0900
+++ bugtrack_list.inc.php	2005-10-21 11:35:58.000000000 +0900
@@ -7,10 +7,10 @@
 // 2002-2005 PukiWiki Developers Team
 // 2002 Y.MASUI GPL2 http://masui.net/pukiwiki/ masui@masui.net
 
-require_once(PLUGIN_DIR . 'bugtrack.inc.php');
-
 function plugin_bugtrack_list_init()
 {
-	plugin_bugtrack_init();
+	if (exist_plugin('bugtrack')) {
+		plugin_bugtrack_init();
+	}
 }
 ?>
--- calendar_edit.inc.php.orig	2005-10-21 11:53:31.000000000 +0900
+++ calendar_edit.inc.php	2005-10-21 11:41:27.000000000 +0900
@@ -12,13 +12,12 @@
 {
 	global $command;
 
-	if (! file_exists(PLUGIN_DIR . 'calendar.inc.php')) return FALSE;
-
-	require_once PLUGIN_DIR . 'calendar.inc.php';
-	if (! function_exists('plugin_calendar_convert')) return FALSE;
-
-	$command = 'edit';
-	$args = func_num_args() ? func_get_args() : array();
-	return call_user_func_array('plugin_calendar_convert', $args);
+	if (exist_plugin('calendar') && exist_plugin_convert('calendar')) {
+		$command = 'edit';
+		$args = func_num_args() ? func_get_args() : array();
+		return call_user_func_array('plugin_calendar_convert', $args);
+	} else {
+		return FALSE;
+	}
 }
 ?>
--- calendar_read.inc.php.orig	2005-10-21 11:53:40.000000000 +0900
+++ calendar_read.inc.php	2005-10-21 11:47:48.000000000 +0900
@@ -12,13 +12,12 @@
 {
 	global $command;
 
-	if (! file_exists(PLUGIN_DIR . 'calendar.inc.php')) return FALSE;
-
-	require_once PLUGIN_DIR.'calendar.inc.php';
-	if (! function_exists('plugin_calendar_convert')) return FALSE;
-
-	$command = 'read';
-	$args = func_num_args() ? func_get_args() : array();
-	return call_user_func_array('plugin_calendar_convert', $args);
+	if (exist_plugin('calendar') && exist_plugin_convert('calendar')) { 
+		$command = 'read';
+		$args = func_num_args() ? func_get_args() : array();
+		return call_user_func_array('plugin_calendar_convert', $args);
+	} else {
+		return FALSE;
+	}
 }
 ?>
--- tracker_list.inc.php.orig	2005-10-21 11:54:04.000000000 +0900
+++ tracker_list.inc.php	2005-10-21 11:50:47.000000000 +0900
@@ -4,11 +4,10 @@
 //
 // Issue tracker list plugin (a part of tracker plugin)
 
-require_once(PLUGIN_DIR . 'tracker.inc.php');
-
 function plugin_tracker_list_init()
 {
-	if (function_exists('plugin_tracker_init'))
+	if (exist_plugin('tracker')) {
 		plugin_tracker_init();
+	}
 }
 ?>
--- tracker.inc.php.orig	2005-10-21 11:53:53.000000000 +0900
+++ tracker.inc.php	2005-10-21 11:49:56.000000000 +0900
@@ -418,9 +418,8 @@
 	}
 	function format_value($str)
 	{
-		if (array_key_exists($this->name,$_FILES))
+		if (array_key_exists($this->name,$_FILES) && exist_plugin('attach'))
 		{
-			require_once(PLUGIN_DIR.'attach.inc.php');
 			$result = attach_upload($_FILES[$this->name],$this->page);
 			if ($result['result']) // アップロード成功
 			{

  • こんにちは :) 興味深いツッコミありがとうございます。何が問題であり、なぜ修正すべきととらえたのでしょうか? (主旨は推測できますが、それを仮定してさらにコメントする事はあまりしたくないので、論旨を明確にしていただきたく思います (^^; ) -- henoheno 2005-10-24 (月) 23:14:28
  • コメントが遅れましたが付け加えさせてください.上記のPLUGIN_DIRを直接参照する方法とexist_pluginの呼び出しは動作としては同じですが,同じ動作を記述をしているコードが複数になってしまうため,例えばプラグインディレクトリを二つ以上分けて管理したい場合にplugin.inc.phpだけでなく,現状各Pluginまで修正点が波及してしまいます.このような考えで上記修正をお願いしたいのですが可能でしょうか? -- yutaochi? 2006-08-29 (火) 15:57:16
    • 遅いなんて事はありませんよ。皆にきちんと説明できる根拠を添えた上で改善を積み重ねて行かないと、長い目で見て駄目になりますから、可能な範囲で毎回適切な手順を踏むべきだと思っています。ふむふむ、(1) プラグインをrequireする機構を exist_plugin() に集約し、また (2)プラグイン周りの役割を lib/plugin.php に集約することで、PukiWikiのコードがよりスッキリする、というのがPukiWikiにとって利点となる様ですね。むしろ、lib/plugin.php (exist_plugin() ) がこのような挙動を全てカバーすべきであるのに、それが徹底されていないのは構造上問題であると。 -- henoheno 2006-09-02 (土) 15:58:13
    • そういう事であれば、確かに改善すべきだと思います。 -- henoheno 2006-09-02 (土) 16:05:58
  • コメントありがとうございます.加えてプラグイン/開発者向けにプラグイン作成のテンプレートとexist_pluginの使い方を書いておくとさらに誤解が無くなりそうです. -- yutaochi? 2006-09-14 (木) 15:28:19
  • tracker_list.inc.php の修正案、あからさまにまずいんですが。
    plugin_tracker_list_convert() とplugin_tracker_list_action() の定義が無いので、convert とaction で呼び出されたときにtracker.inc.php を見に行ってくれない。
    先にこれを取り込んだplus:質問箱/144 で問題になっているようです。 -- 2007-10-09 (火) 07:19:13
    • あと、plugin_tracker_init() はデフォルトで無効(コメントアウト)なので、関数があるかのチェックはしておいた方が良いとか、
      bugtrack_list.inc.php にplugin_bugtrack_list_convert() が無いとか。 -- 2007-10-09 (火) 07:30:47
    • plugin_xxx_init() の中に require() を書くのが、今よりも綺麗かもしれませんね。抱え込んで消化不良で苦しむスタイルは Plus! が過去のPukiWikiから引き継いだもので、当時の存在理由の一つであり、今もなお負担の大きい困難な道であるはずです。せつないですがいたしかたありません。 -- henoheno 2007-10-09 (火) 23:01:01

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-03-14 (土) 14:22:15
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.246 sec.

OSDN