id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	modified_flg
596	同じマスターデータを2回読み込むと、2回目はキャッシュが使われない	uchida	nanasess	"getMasterData ですが、2回目の呼び出しではキャッシュファイルが使われません。
{{{
// キャッシュファイル mtb_order_status.php がある状態にて。
$masterData = new SC_DB_MasterData_Ex();

// 1回目はキャッシュファイルから読み込まれます。
$masterData->getMasterData(""mtb_order_status"");

// 2回目はDBから読み込まれます。
$masterData->getMasterData(""mtb_order_status"");
}}}

SC_DB_MasterData.php のキャッシュ読込みに include_once を使っているのが原因かと思います。
2回目はインクルードされないため、getMasterDataのスコープ内にマスターデータ用変数が見つからず、結果、DBから読み込むようです。


■修正前
{{{
    function getMasterData($name, $columns = array()) {

        $columns = $this->getDefaultColumnName($columns);

        // 可変変数を定義
        $valiable = ""_"" . $name . ""_master"";
        // キャッシュを読み込み
        @include_once(MASTER_DATA_DIR . $name . "".php"");
}}}

■修正後（include_once ⇒ include へ）
{{{
    function getMasterData($name, $columns = array()) {

        $columns = $this->getDefaultColumnName($columns);

        // 可変変数を定義
        $valiable = ""_"" . $name . ""_master"";
        // キャッシュを読み込み
        @include(MASTER_DATA_DIR . $name . "".php"");
}}}
"	バグ指摘	closed	中	EC-CUBE2.4.3	その他	2.4.2	修正済			
