convert_html()で無駄なdigest生成をしている

  • ページ: BugTrack2
  • 投稿者: ぃぉぃぉ
  • 優先順位: 低
  • 状態: 提案
  • カテゴリー: 本体バグ
  • 投稿日: 2007-11-28 (水) 02:30:07
  • バージョン: 1.4.7

メッセージ

lib/convert_html.phpのfunction convert_html()で

	// Set digest
	$digest = md5(join('', get_source($vars['page'])));

とglobal変数の$digestの生成をしていますが、この値は他から使用されていません。

digest値の主な使用目的と思われるplugin/edit.inc.phpのplugin_edit_write()では、postされたvars['digest']を使用しているのみです。このvars['digest']は一発目のedit_form表示時に計算され、convert_html時の値は使用されていません。

ということで、convert_html()の

	// Set digest
	$digest = md5(join('', get_source($vars['page'])));

は削除して良いと思います。通常表示では、これが2度呼ばれているので、無駄な負荷を減らせます。
skinから呼ばれるdo_menu_convertによるmenubar表示時のconvert_htmlでも、menubarではなくそのとき表示しようとするページのdigestを計算しています。($vars['page']はmenubarではなく、表示するページが入っているため)


  • 次の2点も見直す必要があるのでは? -- 2007-12-03 (月) 13:29:25
    1. lib/plugin.php のdo_plugin_convert() とdo_plugin_inline() からglobal変数の$digest を保持する機構*1を外す。
    2. plugin_article_convert() と、plugin_comment_convert() 、plugin_insert_convert() 、plugin_memo_convert() 、plugin_paint_convert() 、plugin_vote_convert() でglobal変数の$digest ではなく、自力で生成するように変更する*2


*1 include プラグインなど$vars['page'] の値を一時的に書き換えて、convert_html() するもの対策と思われる
*2 同じページで複数回呼ばれてもいいようにstatic を使って保持する方がいい?

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-12-03 (月) 13:29:25
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.174 sec.

OSDN