バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nanasess
投稿日時: 2011/1/28 16:09
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
引用:

redさんは書きました:
2.4.4で作ったものですが

... snip

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

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

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


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


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


確かに時間も厳しいですがなにかの参考になれば幸いです



ありがとうございます.
confirmAction() のテストを書きたい場合はどうしたら...
というのは置いておいて, PHP4 でも実現できそうなら良い感じですね.
KAJI
投稿日時: 2011/1/28 19:53
対応状況: −−−
一人前
登録日: 2008/1/24
居住地:
投稿: 121
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
各位
株式会社ロックオンの梶原でございます。

皆さま、色々ご意見をいただいており、誠にありがとうございます。
まだ、議論を収束させるのもあれですので、このままご意見を募集し、色々な観点で
揉んでみたいと思います。
(非常に色々考えていただき恐縮です。今回対応できないにしても、ベストだと
思う案をいただければ幸いです。)

最終結果はまたまとめてご提示できればと思います。

まずは、ご意見を頂いております、皆さまへの御礼まで。

tao_s
投稿日時: 2011/1/28 21:47
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 799
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
個人的にはSC_Helper_DB.phpが長いんで見にくいです。

SC_Helper_DBはあまりに抽象的な名前で処理もいろんな物が含まれていると思います。

ここをもうちょっと具体的な
SC_Helper_CategoryとかSC_Helper_CartとかSC_Helper_Customerとかに分けるのはダメでしょうか?

と言うか、そうするとhelperなのにmodelみたいになっちゃいますね...


----------------
EC-CUBEカスタマイズ相談してください。
緊急のEC-CUBEの障害対応
EC-CUBEカスタマイズブログ

AMUAMU
投稿日時: 2011/1/29 2:30
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
確かにSC_Helper_DBが、取りあえずの共通関数置き場になっているような感じで整理が必要だと思います。
またSC_Utilsも同じような状態なのも気になります。
あとDBアクセスが伴うものもSC_Utilsにあるのは良いのかとか・・・


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

[url=h

seasoft
投稿日時: 2011/1/29 12:15
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
引用:

ECCUOREさんは書きました:
_Exクラス無くしましょう。って提案ですかね。
だとしたら、大賛成です。


私も一応賛成です。

EC-CUBE 本体ソースにも、_Ex を使わない(「存在しない」ではない)ものが存在し、その基準が分からず混乱しています。(実装誤りかと思い確認したこともありますが、仕様らしいです。)

また、決済モジュールにも、_Ex を使わないものが存在します。実際、決済モジュールを使用した支払い時のみ金額計算を誤まるという事故を発生させた、非常に苦い経験もあります。

さらに、決済モジュールには _Ex を上書きするものも存在したと記憶しています。

リファクタリングが進めば、_Ex の利用性(ユーザビリティ)が向上し、また _Ex が存在することでリファクタリングが進みやすくなるというメリットも感じています。しかし、上述のような基本的な問題を解決できなければ、最終的には失望を生むことになると感じ、賛成を表明します。


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

nanasess
投稿日時: 2011/1/30 0:31
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
引用:

AMUAMUさんは書きました:
確かにSC_Helper_DBが、取りあえずの共通関数置き場になっているような感じで整理が必要だと思います。
またSC_Utilsも同じような状態なのも気になります。
あとDBアクセスが伴うものもSC_Utilsにあるのは良いのかとか・・・


これはごもっともで, SC_Helper_DB は, 機能ごとに分割する等整理が必要です.
SC_Utils も, DBアクセスを伴うものの他, エラー制御関数も, あまりよろしくないですよね.

ただ, 今回のリファクタリングの期間では, ページクラスだけで精一杯な気がします.
ECCUORE
投稿日時: 2011/1/30 0:32
対応状況: −−−
長老
登録日: 2009/10/22
居住地: 東京
投稿: 248
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
引用:

tao_sさんは書きました:
個人的にはSC_Helper_DB.phpが長いんで見にくいです。

SC_Helper_DBはあまりに抽象的な名前で処理もいろんな物が含まれていると思います。

ここをもうちょっと具体的な
SC_Helper_CategoryとかSC_Helper_CartとかSC_Helper_Customerとかに分けるのはダメでしょうか?

と言うか、そうするとhelperなのにmodelみたいになっちゃいますね...


賛成です。
Helperは、機能単位になるとスッキリしますよね。

個人的には、全体的な思想としてredさんのAction思想にプラスしてghanaさんのクラスを分ける案と、HelperとかModelの思想がいいです。

Modelは、Table単位、フォーム単位なのですかね。


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

seasoft
投稿日時: 2011/1/30 1:26
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
変数名について提案があります。スレッドが混在してきましたので、別スレッドに分けさせていただきます。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=7441&forum=14


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

tao_s
投稿日時: 2011/1/30 4:26
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 799
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
カスタマイズした際にどの部分をカスタマイズしたかが解りやすいので、個人的には_Exはあっても良いかな?と思います。

ただ、色々面倒が多いのも知ってます。

CodeIgniterやconcrete5を良く使っているので、EC-CUBEにもオーバーライドの機能があれば嬉しいなー、と思っています。

あと、現状の仕様では、まず_Exを読みに行きますが、/data/class_extendsにファイルがあったらそっちのインスタンスを生成する様にしたいです。

こんな感じで
//こんな感じのローダーを作って
class Loader{
    
    public static function Page($name){
        $path = mb_strtolower($name);
        $path = explode("_",$path);
        if(file_exists(DATA_REALDIR."/class_extends/page_extends/".$path[0]."/LC_Page_".$name."_Ex.php")){
            require_once(DATA_REALDIR."/class_extends/page_extends/".$path[0]."/LC_Page_".$name."_Ex.php");
            return new $name."()";
        }else if(file_exists(DATA_REALDIR."/class/pages/".$path[0]."/".$file_name.".php")){
            require_once(DATA_REALDIR."/class/pages/".$path[0]."/".$file_name.".php");
            return new $name."()";        
        }else{
            throw new Exception("そんなページ無いです");
        }
    }
}

///htmlのphpファイルで呼ぶ
try{
    $objPage = Loader::Page("Products_Detail");
    register_shutdown_function(array($objPage, "destroy"));
    $objPage->init();
    $objPage->process();
}catch(Exception $e){
    echo $e->getMessage()."\n";
    exit;
}

※まったくテストしてないので動くかどうかわかりません。


----------------
EC-CUBEカスタマイズ相談してください。
緊急のEC-CUBEの障害対応
EC-CUBEカスタマイズブログ

seasoft
投稿日時: 2011/1/31 2:20
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: EC-CUBE2.11.0正式版に向けたソースリファクタリング
引用:

1行の行数は, 80文字を目安に折り返すのが望ましい

実際に80文字で折り返されたら、査読スピードが落ちるケースも多いと思います。(特にバリデーションの定義とか)
また、1行に収めるために短縮した命名を行うような事にも繋がりかねないと思います。

Zend Framework PHP 標準コーディング規約に非常に的確なガイドラインが書かれていることですし、あえて明記しない方が良いのではないかと思います。

# 「1行の行数は」→「1行は」ですかね。


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

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


 



ログイン


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

統計情報

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

投稿数ランキング

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