バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

機能要望 > その他 > EC-CUBE2.11.0正式版に向けたソースリファクタリング

その他

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ECCUORE
投稿日時: 2011/1/28 14:58
対応状況: −−−
長老
登録日: 2009/10/22
居住地: 東京
投稿: 248
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
引用:

nanasessさんは書きました:
引用:

AMUAMUさんは書きました:
_Exクラスの設置についても方針まとめ出来ませんか?


現在, data/class 直下の SC_* の多くに _Ex クラスが未設置ですが, この短期間で, 更に修正するとなると, 相当インパクトが大きそうです. いかがでしょうか?


_Exクラス無くしましょう。って提案ですかね。
だとしたら、大賛成です。


----------------
EC CUORE 株式会社クオーレ
カスタマイズ御相談下さい。

red
投稿日時: 2011/1/28 14:54
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1570
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
2.4.4で作ったものですが

LC_Pageと各ページクラスの間に独自クラスを作りましてそのなかで

    public function process() {
        parent::process();

        $this->preDispatch();

        if (!isset($_POST['mode'])) $_POST['mode'] = "index";

        call_user_func_array(array($this, $_POST['mode'] . "Action"), array());

        $this->postDispatch();

        self::display($this);
    }



そしてページクラスでは

    public function confirmAction() {
        $this->arrErr = self::lfCheckError($this->arrData);
        // 入力エラーなし
        if(count($this->arrErr) == 0) {
            // DBへのデータ登録
            self::lfRegistData();
            parent::redirectNextPage();
        }
    }

    // post payment ** 空だけどjs動かす為に必要
    public function paymentAction() {
    }


こんな感じでmodeでActionを動かしています。

根っからのPHPerでちゃんと勉強したことがないので好きなように書いてしまっていますが・・・

利点としてはこの基底クラスで必ず


        $this->objFormParam = new SC_FormParam();
        $this->lfInitParam();
        $this->objFormParam->setParam($_POST);


こういった処理を呼ぶようにしていますのでPageクラスではスーパーグローバルが出てくることが絶対にないということでしょうか


確かに時間も厳しいですがなにかの参考になれば幸いです
ECCUORE
投稿日時: 2011/1/28 14:40
対応状況: −−−
長老
登録日: 2009/10/22
居住地: 東京
投稿: 248
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
期間的は難しいと思いますが、その思想は好きです。
ステートフルの件にしても、アクションヘルパー的な物を使えばクリアになるでしょうし、プラグインも高機能化しそうですしね。

「ソースリファクタリングガイドライン案」で一旦、MVCっぽくしておけば、red様提案の思想に再度リファクタリングするのに手間が掛らないのでは無いかと思いますので、次バージョン以降、是非また提案してください。

その時を楽しみにしています。

この思想だと、プラグインでmodeActionを上書きしたり、追加したりと色々出来そうですね。


----------------
EC CUORE 株式会社クオーレ
カスタマイズ御相談下さい。

nanasess
投稿日時: 2011/1/28 14:10
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
本件とは少々外れてしまうかもしれませんが, 下記のようなご提案もいただいています.

#909 モデルクラス (ghana様)
http://svn.ec-cube.net/open_trac/ticket/909
nanasess
投稿日時: 2011/1/28 14:07
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
引用:

redさんは書きました:
action 関数についてお伺いしたいのですが、その処理だけを行うのであればswitchの部分も内部的に実行してしまえばいいような気がします

mode名Actionを動的に呼び、その中で固有の処理を
action前に実行したい処理があればpreDispatch
action後に共通して呼びたい処理があればpostDispatch

といった感じに変更したほうが現代のフレームワークに近い物になると思いますがいかがでしょうか?


この方法だと,

* switch を内部的に実行すると, 全体を見渡しにくくなる
* mode名Action() がステートフルになってしまう

という懸念があります.
ステートフルになること自体は, PHP プログラマの方はあまり気にされないかもしれませんが^^;
リファクタリング作業自体は2/15までということで, 変更のインパクトも大きいですし, いかがでしょうか?

できましたら, サンプルコードなどご教示ください.

引用:

リファクタリング作業には協力できればと考えております、よろしくお願いいたします


ありがとうございます.
nanasess
投稿日時: 2011/1/28 13:56
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
引用:

AMUAMUさんは書きました:
話題に少し上がっていたSC_Helper系クラスと通常SCクラスとの区分けについても、一応方針が欲しいなと思います。


SC_Helper 系は, 複数の機能を連携させるビジネスロジック, 通常 SCクラスは, 機能固有のビジネスロジックという棲み分けでいかがでしょう?
nanasess
投稿日時: 2011/1/28 13:53
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
引用:

AMUAMUさんは書きました:
_Exクラスの設置についても方針まとめ出来ませんか?


現在, data/class 直下の SC_* の多くに _Ex クラスが未設置ですが, この短期間で, 更に修正するとなると, 相当インパクトが大きそうです. いかがでしょうか?
red
投稿日時: 2011/1/28 13:40
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1570
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
action 関数についてお伺いしたいのですが、その処理だけを行うのであればswitchの部分も内部的に実行してしまえばいいような気がします

mode名Actionを動的に呼び、その中で固有の処理を
action前に実行したい処理があればpreDispatch
action後に共通して呼びたい処理があればpostDispatch

といった感じに変更したほうが現代のフレームワークに近い物になると思いますがいかがでしょうか?

リファクタリング作業には協力できればと考えております、よろしくお願いいたします
AMUAMU
投稿日時: 2011/1/28 13:16
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
話題に少し上がっていたSC_Helper系クラスと通常SCクラスとの区分けについても、一応方針が欲しいなと思います。


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

AMUAMU
投稿日時: 2011/1/28 13:14
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
_Exクラスの設置についても方針まとめ出来ませんか?


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

« 1 2 (3) 4 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,352名です
総投稿数は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.