Ticket #2480 (new バグ指摘)
デストラク(function destroy)の削除漏れがある
Reported by: | kimoto | Owned by: | somebody |
---|---|---|---|
Priority: | 中 | Milestone: | EC-CUBE2.13.x |
Component: | その他 | Version: | 2.13.0 |
Keywords: | Cc: | ||
修正済み: | no |
Description
2.13.0で削除されたfunction destroyが LC_Page_Admin_OwnersStore_PluginHookPointList_Ex.phpとdata/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore_PluginHookPointList.phpに残っている
また、別件ではあるがプラグイン内でfunction destroyを読んでいるとPHP5.1.6でのみ下記エラーでシステムエラーになる
Fatal error: Call to undefined method LC_Page_Admin_Ex::destroy() on [/var/www/html/eccube-2.13.1/data/downloads/plugin/hogehoge/LC_Page_Plugin_hogehoge_Config.php(103)
Change History
comment:2 Changed 10 years ago by kimoto
php5.1.6が落ちて、それ以外が落ちない原因は SC_Helper_HandleError.phpの_fatal_error_handlerとhandle_errorの実装の違いらしい
register_shutdown_function内でfatal errorが出た場合に補足できずにスルーしているような挙動に見える
comment:3 Changed 10 years ago by kimoto
- Status changed from new to assigned
register_shutdown_function内でfatal errorが出ると、一旦それを無視して最後まで処理を続行 ↓ handle_errorでエラーを取得 ↓ 一番最後に出ているエラーがfatal error以外の場合がある(プラグインだとSC_View.phpのエラーなどを拾ってます) ↓ handle_errorはfatal errorで終わった場合を拾うようになっているので処理が続行 ↓ エラー画面が表示されず、エラーログも残さず動作する
こんな動きになっているようです。 結論的には
EC-CUBE内でregister_shutdown_functionを使わないようにする もしくは register_shutdown_function(array(CLASS, 'handle_error'));をやめる もしくは 上の挙動をしてもエラーを何とか拾う
なのかなと・・