バージョン選択

フォーラム

メニュー

オンライン状況

31 人のユーザが現在オンラインです。 (11 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 31
もっと...

サイト内検索

その他 > バージョンアップ > 2.17.1 プラグインからの大量E_WARNINGの対策例

バージョンアップ

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kazz_oga
投稿日時: 2020/7/26 15:28
対応状況: 解決済
一人前
登録日: 2013/8/5
居住地: 東京都北区赤羽西
投稿: 122
2.17.1 プラグインからの大量E_WARNINGの対策例
▼テンプレート
[EC-CUBE] 2.17.1
[レンタルサーバ] ローカル環境
[OS] Mac10.15.5
[PHP] 7.4
[データベース] MySQL 5.7
[WEBサーバ] Apache 2.4
[ブラウザ] safari
[導入プラグインの有無] EC-CUBEペイメントモジュール(4.3.32)
2.17.1への移行でプラグインからE_WARNINGエラーがでる。このE_WARNINGを選んで出力しない対策をとった。

{現象]
・2.17.1のバージョンアップによりプラグインから大量のE_WARNINGがでるようになった。
・メッセージ内容およびテストにより、稼働には問題ないことも確認

[対策をとる要因]
・E_WARNINGが発生しないように修正をおこなった場合、つぎの問題がある
  - 修正による副作用の懸念
  - プラグインのバージョンアップ毎に同様の修正作業が必要
・大量のE_WARNINGをerror.logに出力させた場合の問題
  - 新たなドラブルが発生しても大量なE_WARNINGで見落としてしまう可能性がある
  - 不正なアタックの状況が大量なE_WARNINGで把握しにくくなる

[対策内容]
・容認したE_WARNINGについて、フィルタリングを行ってerror.logに出力しない
1) 出力先を指定する環境パラメータを設ける
<mtb_constants>
ID ERROR_EXCLUSION_LOG_REALFILE
name “/dev/null”
 ※管理機能>システム>パラメータ設定で登録作業要

2)GU_Utils.phpの改修
2)-1 出力しないメッセージの定義
// 出力しないE_WARNINGについてdefineで定義する
define('EXCLUSION_MSG',[
'Warning(E_WARNING): Declaration of LC_PageHelper_Mdl_PG_MULPAY_Token::initParam(&$objFormParam, &$arrPaymentInfo, &$arrOrder) should be compatible with LC_PageHelper_MDL_PG_MULPAY_Base::initParam(&$objFormParam, $arrPaymentInfo, &$arrOrder) on',
<途中省略>
'Warning(E_WARNING): Declaration of PgMulpayCore::install($arrPlugin) should be compatible with SC_Plugin_Base::install($arrPlugin, $objPluginInstaller = NULL) on',
'Warning(E_WARNING): array_key_exists() expects parameter 2 to be array, null given on'
]
);

2)-2フィルタ処理
//gfPrintlogのif(strlen($path) == 0)のifブロックの次でlog出力の$pathを再設定する
foreach( EXCLUSION_MSG as $target_str) {
   $check_result = strstr($msg,$target_str) ;
   if($check_result != FALSE) {
   $path = ERROR_EXCLUSION_LOG_REALFILE;
   break;
   };
}

ERROR_EXCLUSION_LOG_REALFILEの値で必要に応じて出力先を変えられるようにした
kazz_oga
投稿日時: 2020/7/29 17:03
対応状況: 解決済
一人前
登録日: 2013/8/5
居住地: 東京都北区赤羽西
投稿: 122
Re: 2.17.1 プラグインからの大量E_WARNINGの対策例
環境パラメータERROR_EXCLUSION_LOG_REALFILEが未定義の状態で対象のE_WARNINGが発生すると、へんなところにファイル名ERROR_EXCLUSION_LOG_REALFILEでログファイルが作られます。

手順としては
A案 管理機能>パラメータ設定でERROR_EXCLUSION_LOG_REALFILEを定義後、GU_Utils.phpを修正する
B案 GU_Utils.phpを修正、data/cache/mtb_constants.phpにdefine(ERROR_EXCLUSION_LOG_REALFILE)を追加を双方行った後に実行し、パラメタ〜設定を行う
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は65,971名です
総投稿数は98,076件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2605
4
nanasess
2101
5
umebius
1717
6
yuh
1612
7
red
1423
8
h_tanaka
1038
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.