バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > フロント機能 > LC_Page_Error::process()が拡張できないようになっている

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
spais
投稿日時: 2010/4/5 16:10
対応状況: −−−
新米
登録日: 2010/4/5
居住地:
投稿: 7
LC_Page_Error::process()が拡張できないようになっている
バグと言うより仕様的な問題でしょうが、LC_Page_Error::process() では最初に parent::process() が呼び出されているため、LC_Page_Error_Ex::process() で拡張する際保守的に「規定のメソッドで parent::process() が呼び出されている以上、親クラスの process() メソッドに何らかのコードがあった場合に備えて LC_Page_Error クラスの親クラスの process() メソッドを呼び出す」と考えるのが一般的かなと思いますが、その場合親クラスのさらに親クラスを直接呼び出すことは出来ないため、LC_Page_Error_Ex::process() から LC_Page::process() を考慮して parent::process() を呼び出すと LC_Page_Error::process() がまず実行されます。
このため LC_Page_Error::process() で拡張したエラーページを出力しようと思っても LC_Page_Error::process() のエラーページが出力されてしまうため、結果としてエラーページを重複して出力します。

つまり、LC_Page_Error::process() のプログラムをなるべく維持した状態で LC_Page_Error_Ex::process() を拡張する事が出来ない、という状態にあります。

このような混同をなくすためには LC_Page_Error::process() が親クラスの process() メソッドを呼び出さないのがベストだと思います。クラスを継承してメソッドを書き換えることで拡張とする EC-CUBE の設計思想では、本体のソースコード内で親クラスのメソッドを呼び出されてしまっては拡張のしようがなくなってしまうと思います。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » LC_Page_Error::process()が拡張できないようになっている spais 2010/4/5 16:10
     Re: LC_Page_Error::process()が拡張できないようになっている nanasess 2010/4/7 12:49
       Re: LC_Page_Error::process()が拡張できないようになっている spais 2010/4/7 23:15
         Re: LC_Page_Error::process()が拡張できないようになっている nanasess 2010/4/8 0:42

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,389名です
総投稿数は110,082件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1304
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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