Ticket #596 (closed バグ指摘: 修正済)
同じマスターデータを2回読み込むと、2回目はキャッシュが使われない
| Reported by: | uchida | Owned by: | nanasess |
|---|---|---|---|
| Priority: | 中 | Milestone: | EC-CUBE2.4.3 |
| Component: | その他 | Version: | 2.4.2 |
| Keywords: | Cc: | ||
| 修正済み: |
Description
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");
Change History
Note: See
TracTickets for help on using
tickets.
