質問 > フロント機能 > ダウンロード処理の変更はどのファイルに書けばよい? |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
yosako |
投稿日時: 2012/9/12 17:10
対応状況: −−−
|
一人前 登録日: 2011/12/3 居住地: 投稿: 101 |
ダウンロード処理の変更はどのファイルに書けばよい? ダウンロード商品で、ダウンロードが実行されたら、自動的にオーダーステータスを入金済みから発送済みに変更するよう修正をしていますが、その修正をどのファイルに書き込めばよいか分からなくなってしまいました。
現在使用しているのは、2.11.5ですが、LC_Page_Mypage_DownLoad_Ex.phpというファイルがなく、LC_Page_Mypage_DownLoad.phpでは、LC_Page_Exを継承しているようなので、LC_Page_Ex.phpに書けばよいのでしょうか。分からないので、現在は、LC_Page_Mypage_DownLoad.php に直書きしています... また、2.12.xで確認しますと、LC_Page_Mypage_DownLoad_Ex.phpは新しく作られていますが、LC_Page_Mypage_DownLoad.phpを見ると、LC_Page_Mypage_DownLoad_Exは継承されていないように見えますが、2.12ではLC_Page_Mypage_DownLoad_Ex.phpに修正を加えれても良いのでしょうか。 eccubeのクラス間の継承で頭がこんがらがってしまいましたので、教えていただければと思います。 よろしくお願いします。 |
nakamtest1 |
投稿日時: 2012/9/12 18:50
対応状況: −−−
|
常連 登録日: 2012/8/7 居住地: 投稿: 33 |
Re: ダウンロード処理の変更はどのファイルに書けばよい? LC_Page_Mypage_DownLoad.phpで直書きしても、特に問題ないかと思います。
LC_Page_Mypage_DownLoad_Ex.phpにLC_Page_Mypage_DownLoad.phpが継承されていないなら、そのファイルは使う必要ないというかそれ自体がバグですね。 |
ゲスト |
投稿日時: 2012/9/13 21:56
対応状況: −−−
|
Re: ダウンロード処理の変更はどのファイルに書けばよい? ec-cubeの場合、基本は、概念として、
class abc extends page_Ex extends page です。 さらに、賛否ありますが、 class abc_Ex extends abc です。 2.12で、class abc_Ex extends abc を推し進めました。 class を直修正しても良いですし、Exを修正してもよいです。 現時点ではExでオーバーライドした方が、 修正の取り止めが、容易です。 |
|
yosako |
投稿日時: 2012/9/14 9:13
対応状況: −−−
|
一人前 登録日: 2011/12/3 居住地: 投稿: 101 |
Re: ダウンロード処理の変更はどのファイルに書けばよい? Ringoさん、コメントありがとうございます。
極力修正は、EXの方に書いています。classを直接修正すると、過去、osCommerceで修正をしたためにバージョンアップが大変だった経験がありますので嫌なのです。もっとも、2.12アップグレードできなければ直接修正しても何ら支障はないのですが... 2.11にLC_Page_Mypage_DownLoad_EX.phpがないので質問させていただきました。 LC_Page_Mypage_DownLoad_EX.phpを作成してextends LC_Page_Mypage_DownLoadとし、 download.phpで$objPage = new LC_Page_Mypage_DownLoad_EX();としたら基本的には動きますよね? やってみれば良いことなのですが。 |
seasoft |
投稿日時: 2012/9/14 11:24
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: ダウンロード処理の変更はどのファイルに書けばよい? > classを直接修正すると、過去、osCommerceで修正をしたためにバージョンアップが大変だった経験がありますので嫌なのです。もっとも、2.12アップグレードできなければ直接修正しても何ら支障はないのですが...
メソッドを通常のクラスから拡張クラスにまるまるコピペするのは、セキュリティ上もリスクが高いので留意してください。将来アップデートした時に、アップデート前の脆弱性を含むソースで動作し続けるリスクを背負います。 その面では、2.11 → 2.12 なども、拡張クラスを使うと上記のような懸念が生じます。さらに、メソッド名や引数が変更されるケースもあります。 その場合、アップデートが表面上簡単に成功しても、動作は意図しない状況という地味に痛い目にあいます。 そんなことから個人的には、バージョン管理システムやマージツールで、バージョンアップ対応を行い、拡張クラスは極力使わないように心がけています。 参考まで。 > 2.11にLC_Page_Mypage_DownLoad_EX.phpがないので質問させていただきました。 Ringo 様の書かれている通り、2.11 での不具合だと思います。 > LC_Page_Mypage_DownLoad_EX.phpを作成してextends LC_Page_Mypage_DownLoadとし、 > download.phpで$objPage = new LC_Page_Mypage_DownLoad_EX();としたら基本的には動きますよね? 良いと思います。 2.12 の download.php と LC_Page_Mypage_DownLoad_EX.php を持ってきても、良いかも。
|
yosako |
投稿日時: 2012/9/14 13:25
対応状況: 解決済
|
一人前 登録日: 2011/12/3 居住地: 投稿: 101 |
Re: ダウンロード処理の変更はどのファイルに書けばよい? seasoftさん
コメントしていただいた内容に留意してテストしてみます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |