From 13447b975212bb7ce24e54b80284f4f88ef492ba Mon Sep 17 00:00:00 2001 From: sakamocchi Date: Sat, 19 May 2012 11:30:43 +0900 Subject: [PATCH] =?utf8?q?ADD:=20=E3=83=86=E3=83=B3=E3=83=97=E3=83=AC?= =?utf8?q?=E3=83=BC=E3=83=88=E7=B7=A8=E9=9B=86=E7=94=BB=E9=9D=A2=E7=94=A8?= =?utf8?q?=E3=82=BF=E3=82=B0=E3=82=92=E5=87=A6=E7=90=86=E3=81=99=E3=82=8B?= =?utf8?q?=E3=83=A1=E3=82=BD=E3=83=83=E3=83=89=E3=81=AB=E3=83=A1=E3=82=BD?= =?utf8?q?=E3=83=83=E3=83=89=E5=86=85=E3=82=AD=E3=83=A3=E3=83=83=E3=82=B7?= =?utf8?q?=E3=83=A5=E3=82=92=E8=BF=BD=E5=8A=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Admin::parse_edittemplateinfo()とAdmin::parse_editadmintemplateinfo()はパースされる度にSQL文を発行し、テンプレートセット名とテンプレートセット説明を取得していた。 タグ<%edittemplateinfo%>と<%editadmintemplateinfo%>はそれぞれ、ページアクションtemplateedit/templatedeleteそしてadmintemplateedit/admintemplatedeleteで使用可能なタグだが、このページアクションにおいて、テンプレートIDは一意である。そのため、メソッド内キャッシュを追加し、問い合わせ回数を減らした。 クラス内キャッシュにするかメソッド内キャッシュにするかで悩んだが、不慮の事故を減らすためにメソッド内キャッシュとした。 --- nucleus/libs/AdminActions.php | 54 ++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/nucleus/libs/AdminActions.php b/nucleus/libs/AdminActions.php index f89ff75..7ecd7e7 100644 --- a/nucleus/libs/AdminActions.php +++ b/nucleus/libs/AdminActions.php @@ -2919,22 +2919,35 @@ class AdminActions extends BaseActions public function parse_edittemplateinfo($type, $desc = '', $name = '', $help = '', $tabindex = 0, $big = 0, $tplt = '') { global $manager; + static $cache = array(); - $t_id = intRequestVar('templateid'); - $t_name = Template::getNameFromId($t_id); - $t_desc = Template::getDesc($t_id); - $template =& $manager->getTemplate($t_name); + if ( !array_key_exists('id', $cache) ) + { + $cache['id'] = intRequestVar('templateid'); + } + + if ( !array_key_exists('name', $cache) ) + { + $cache['name'] = Template::getNameFromId($cache['id']); + } + + if ( !array_key_exists('desc', $cache) ) + { + $cache['desc'] = Template::getDesc($cache['id']); + } + + $template =& $manager->getTemplate($cache['name']); switch ( $type ) { case 'id': - echo intval($t_id); + echo (integer) $cache['id']; break; case 'name': - echo Entity::hsc($t_name); + echo Entity::hsc($cache['name']); break; case 'desc': - echo Entity::hsc($t_desc); + echo Entity::hsc($cache['desc']); break; case 'extratemplate': $tabidx = 600; @@ -2993,22 +3006,35 @@ class AdminActions extends BaseActions public function parse_editadmintemplateinfo($type, $desc = '', $name = '', $help = '', $tabindex = 0, $big = 0, $tplt = '') { global $manager; + static $cache = array(); + + if ( !array_key_exists('id', $cache) ) + { + $cache['id'] = intRequestVar('templateid'); + } + + if ( !array_key_exists('name', $cache) ) + { + $cache['name'] = Template::getNameFromId($cache['id']); + } + + if ( !array_key_exists('desc', $cache) ) + { + $cache['desc'] = Template::getDesc($cache['id']); + } - $t_id = intRequestVar('templateid'); - $t_name = Template::getNameFromId($t_id); - $t_desc = Template::getDesc($t_id); - $template =& $manager->getTemplate($t_name); + $template =& $manager->getTemplate($cache['name']); switch ( $type ) { case 'id': - echo intval($t_id); + echo (integer) $cache['id']; break; case 'name': - echo Entity::hsc($t_name); + echo Entity::hsc($cache['name']); break; case 'desc': - echo Entity::hsc($t_desc); + echo Entity::hsc($cache['desc']); break; case 'extratemplate': $tabidx = 600; -- 2.11.0