バグ報告 > フロント機能 > 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 |