バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > ダウンロード処理の変更はどのファイルに書けばよい?

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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 を持ってきても、良いかも。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

yosako
投稿日時: 2012/9/14 13:25
対応状況: 解決済
一人前
登録日: 2011/12/3
居住地:
投稿: 101
Re: ダウンロード処理の変更はどのファイルに書けばよい?
seasoftさん

コメントしていただいた内容に留意してテストしてみます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,856名です
総投稿数は109,989件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
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.