Skip to content

Commit

Permalink
Merge pull request #824 from EC-CUBE/seasoft-385-add1
Browse files Browse the repository at this point in the history
#385 のPHP8対応、PHP5対応、軽微な修正、テスト調整
  • Loading branch information
shinya authored Jan 31, 2024
2 parents 9e3102f + 68c64ad commit 91b4c8c
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 183 deletions.
22 changes: 12 additions & 10 deletions data/class/helper/SC_Helper_DB.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,12 @@
* @author EC-CUBE CO.,LTD.
* @version $Id$
*/

// NOTE: PHP5 対応が不要となったらクラス定数に変更する。
define('SC_HELPER_DB_BASIS_DATA_CACHE_REALFILE', MASTER_DATA_REALDIR . 'dtb_baseinfo.serial');

class SC_Helper_DB
{
const BASIS_DATA_CACHE_REALFILE = MASTER_DATA_REALDIR . 'dtb_baseinfo.serial';

/** ルートカテゴリ取得フラグ */
public $g_root_on;

Expand Down Expand Up @@ -133,7 +135,7 @@ public static function sfGetBasisData($force = false)
static $arrData = null;

// キャッシュファイルが存在しない場合、キャッシュファイルを生成する
if (!$force && !file_exists(SC_Helper_DB_Ex::BASIS_DATA_CACHE_REALFILE)) {
if (!$force && !file_exists(SC_HELPER_DB_BASIS_DATA_CACHE_REALFILE)) {
$force = true;
}

Expand Down Expand Up @@ -167,7 +169,7 @@ public static function sfGetBasisDataCache($generate = false)
$cacheData = [];

// ファイル存在確認
if (!file_exists(SC_Helper_DB_Ex::BASIS_DATA_CACHE_REALFILE) && $generate) {
if (!file_exists(SC_HELPER_DB_BASIS_DATA_CACHE_REALFILE) && $generate) {
// 存在していなければキャッシュ生成
static::sfCreateBasisDataCache();
}
Expand All @@ -184,14 +186,14 @@ public static function sfGetBasisDataCache($generate = false)
* @param boolean $ignore_error エラーを無視するか
* @return array 店舗基本情報の配列
*/
public function getBasisDataFromCacheFile($ignore_error = false)
public static function getBasisDataFromCacheFile($ignore_error = false)
{
$arrReturn = [];

// ファイル存在確認
if (file_exists(SC_Helper_DB_Ex::BASIS_DATA_CACHE_REALFILE)) {
if (file_exists(SC_HELPER_DB_BASIS_DATA_CACHE_REALFILE)) {
// キャッシュデータファイルを読み込みアンシリアライズした配列を取得
$arrReturn = unserialize(file_get_contents(SC_Helper_DB_Ex::BASIS_DATA_CACHE_REALFILE));
$arrReturn = unserialize(file_get_contents(SC_HELPER_DB_BASIS_DATA_CACHE_REALFILE));
}
elseif (!$ignore_error) {
throw new Exception('基本情報のキャッシュデータファイルが存在しません。');
Expand All @@ -205,7 +207,7 @@ public function getBasisDataFromCacheFile($ignore_error = false)
*
* @return array 店舗基本情報の配列
*/
public function getBasisDataFromDB()
public static function getBasisDataFromDB()
{
$objQuery = SC_Query_Ex::getSingletonInstance();

Expand All @@ -228,11 +230,11 @@ public function getBasisDataFromDB()
public static function sfCreateBasisDataCache()
{
// データ取得
$arrData = static::getBasisDataFromDB(true);
$arrData = static::getBasisDataFromDB();
// シリアライズ
$data = serialize($arrData);
// ファイルを書き出しモードで開く
$handle = fopen(SC_Helper_DB_Ex::BASIS_DATA_CACHE_REALFILE, 'w');
$handle = fopen(SC_HELPER_DB_BASIS_DATA_CACHE_REALFILE, 'w');
if (!$handle) {
// ファイル生成失敗
return false;
Expand Down
3 changes: 1 addition & 2 deletions data/class/pages/admin/basis/LC_Page_Admin_Basis.php
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ public function process()
*/
public function action()
{
$objDb = new SC_Helper_DB_Ex();
$objFormParam = new SC_FormParam_Ex();
$this->lfInitParam($objFormParam, $_POST);
$objFormParam->setParam($_POST);
Expand Down Expand Up @@ -108,7 +107,7 @@ public function action()
$this->tpl_onload .= "window.alert('SHOPマスターの登録が完了しました。');";
// breakはつけない
default:
$arrRet = $objDb->getBasisDataFromDB();
$arrRet = SC_Helper_DB_Ex::getBasisDataFromDB();
$objFormParam->setParam($arrRet);
$this->arrForm = $objFormParam->getHashArray();
$this->arrForm['regular_holiday_ids'] = explode('|', $this->arrForm['regular_holiday_ids']);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public function testSfGetBasisDataCache_キャッシュがなく生成もしな
unlink($this->cashFilePath);
}
$this->expected = array();
$this->actual = SC_Helper_DB_sfGetBasisDataCacheMock::sfGetBasisDataCache();
$this->actual = SC_Helper_DB_Ex::sfGetBasisDataCache();
$this->verify();
}

Expand All @@ -62,75 +62,8 @@ public function testSfGetBasisDataCache_キャッシュがなく生成する場
if (file_exists($this->cashFilePath)) {
unlink($this->cashFilePath);
}
$this->expected = array(
'id' => '1',
'company_name' => 'testshop',
'company_kana' => 'テストショップ',
'zip01' => '530',
'zip02' => '0001',
'pref' => '1',
'addr01' => 'testaddr01',
'addr02' => 'testaddr02',
'tel01' => '11',
'tel02' => '2222',
'tel03' => '3333',
'fax01' => '11',
'fax02' => '2222',
'fax03' => '3333',
'business_hour' => '09-18',
'law_company' => 'lawcampanyname',
'law_manager' => 'lawmanager',
'law_zip01' => '530',
'law_zip02' => '0001',
'law_pref' => '1',
'law_addr01' => 'lawaddr01',
'law_addr02' => 'lawaddr02',
'law_tel01' => '11',
'law_tel02' => '2222',
'law_tel03' => '3333',
'law_fax01' => '11',
'law_fax02' => '2222',
'law_fax03' => '3333',
'law_email' => '[email protected]',
'law_url' => 'http://test.test',
'law_term01' => 'lawterm01',
'law_term02' => 'lawterm02',
'law_term03' => 'lawterm03',
'law_term04' => 'lawterm04',
'law_term05' => 'lawterm05',
'law_term06' => 'lawterm06',
'law_term07' => 'lawterm07',
'law_term08' => 'lawterm08',
'law_term09' => 'lawterm09',
'law_term10' => 'lawterm10',
'email01' => '[email protected]',
'email02' => '[email protected]',
'email03' => '[email protected]',
'email04' => '[email protected]',
'free_rule' => '1000',
'shop_name' => 'shopname',
'shop_kana' => 'ショップネーム',
'shop_name_eng' => 'shopnameeng',
'point_rate' => '10',
'welcome_point' => '100',
'update_date' => '2012-02-14 11:22:33',
'top_tpl' => 'top.tpl',
'product_tpl' => 'product.tpl',
'detail_tpl' => 'detail.tpl',
'mypage_tpl' => 'mypage.tpl',
'good_traded' => 'goodtraded',
'message' => 'message',
'regular_holiday_ids' => '0|6',
'latitude' => '30.0001',
'longitude' => '45.0001',
'downloadable_days' => '10',
'downloadable_days_unlimited' => '0',
'zipcode' => null,
'country_id' => null,
'law_zipcode' => null,
'law_country_id' => null,
);
$this->actual = SC_Helper_DB_sfGetBasisDataCacheMock::sfGetBasisDataCache(true);
$this->expected = SC_Helper_DB_Ex::getBasisDataFromDB();
$this->actual = SC_Helper_DB_Ex::sfGetBasisDataCache(true);
$this->verify();
}

Expand All @@ -140,7 +73,7 @@ public function testSfGetBasisDataCache_キャッシュがある場合_キャッ
if (file_exists($this->cashFilePath)) {
unlink($this->cashFilePath);
}
SC_Helper_DB_sfGetBasisDataCacheMock::sfCreateBasisDataCache();
SC_Helper_DB_Ex::sfCreateBasisDataCache();
$this->expected = array(
'id' => '1',
'company_name' => 'testshop',
Expand Down Expand Up @@ -204,108 +137,13 @@ public function testSfGetBasisDataCache_キャッシュがある場合_キャッ
'longitude' => '45.0001',
'downloadable_days' => '10',
'downloadable_days_unlimited' => '0',
'tax' => '5',
'tax_rule' => '1',
'zipcode' => null,
'country_id' => null,
'law_zipcode' => null,
'law_country_id' => null,
);
$this->actual = SC_Helper_DB_sfGetBasisDataCacheMock::sfGetBasisDataCache();
$this->actual = SC_Helper_DB_Ex::sfGetBasisDataCache();
unlink($this->cashFilePath);
$this->verify();
}

}

class SC_Helper_DB_sfGetBasisDataCacheMock extends SC_Helper_DB_Ex
{
public static function sfCreateBasisDataCache()
{
// テーブル名
$name = 'dtb_baseinfo';
// キャッシュファイルパス
$filepath = MASTER_DATA_REALDIR . $name . '.serial';
// データ取得
$arrData = array(
'id' => '1',
'company_name' => 'testshop',
'company_kana' => 'テストショップ',
'zip01' => '530',
'zip02' => '0001',
'pref' => '1',
'addr01' => 'testaddr01',
'addr02' => 'testaddr02',
'tel01' => '11',
'tel02' => '2222',
'tel03' => '3333',
'fax01' => '11',
'fax02' => '2222',
'fax03' => '3333',
'business_hour' => '09-18',
'law_company' => 'lawcampanyname',
'law_manager' => 'lawmanager',
'law_zip01' => '530',
'law_zip02' => '0001',
'law_pref' => '1',
'law_addr01' => 'lawaddr01',
'law_addr02' => 'lawaddr02',
'law_tel01' => '11',
'law_tel02' => '2222',
'law_tel03' => '3333',
'law_fax01' => '11',
'law_fax02' => '2222',
'law_fax03' => '3333',
'law_email' => '[email protected]',
'law_url' => 'http://test.test',
'law_term01' => 'lawterm01',
'law_term02' => 'lawterm02',
'law_term03' => 'lawterm03',
'law_term04' => 'lawterm04',
'law_term05' => 'lawterm05',
'law_term06' => 'lawterm06',
'law_term07' => 'lawterm07',
'law_term08' => 'lawterm08',
'law_term09' => 'lawterm09',
'law_term10' => 'lawterm10',
'tax' => '5',
'tax_rule' => '1',
'email01' => '[email protected]',
'email02' => '[email protected]',
'email03' => '[email protected]',
'email04' => '[email protected]',
'free_rule' => '1000',
'shop_name' => 'shopname',
'shop_kana' => 'ショップネーム',
'shop_name_eng' => 'shopnameeng',
'point_rate' => '10',
'welcome_point' => '100',
'update_date' => '2012-02-14 11:22:33',
'top_tpl' => 'top.tpl',
'product_tpl' => 'product.tpl',
'detail_tpl' => 'detail.tpl',
'mypage_tpl' => 'mypage.tpl',
'good_traded' => 'goodtraded',
'message' => 'message',
'regular_holiday_ids' => '0|6',
'latitude' => '30.0001',
'longitude' => '45.0001',
'downloadable_days' => '10',
'downloadable_days_unlimited' => '0'
);
// シリアライズ
$data = serialize($arrData);
// ファイルを書き出しモードで開く
$handle = fopen($filepath, 'w');
if (!$handle) {
// ファイル生成失敗
return false;
}
// ファイルの内容を書き出す.
$res = fwrite($handle, $data);
// ファイルを閉じる
fclose($handle);
if ( $res === false) {
// ファイル生成失敗
return false;
}
// ファイル生成成功
return true;
}
}

0 comments on commit 91b4c8c

Please sign in to comment.