Changes between Version 3 and Version 4 of EC-CUBE標準規約/リファクタリングガイドライン


Ignore:
Timestamp:
2012/06/07 09:25:54 (9 years ago)
Author:
nanasess
Comment:

EC-CUBE 2.12 における内容をフィードバック

Legend:

Unmodified
Added
Removed
Modified
  • EC-CUBE標準規約/リファクタリングガイドライン

    v3 v4  
    2727    $this->arrDISP = $masterData->getMasterData('mtb_disp'); 
    2828} 
    29 ?> 
    3029}}} 
    3130 
     
    7877 
    7978        /** NG SQLを実行する処理を記述してはならない */ 
    80         $objQuery =& SC_Query::getSingletonInstance(); 
     79        $objQuery = SC_Query::getSingletonInstance(); 
    8180        $arrResults = $objQuery->select('*', 'table_name'); 
    8281 
     
    9291    } 
    9392} 
    94 ?> 
    9593}}} 
    9694 
     
    120118    SC_Response_Ex::sendRedirect('complete.php'); 
    121119} 
    122 ?> 
    123120}}} 
    124121 
     
    194191    $this->assertEquals($expected, $actual); 
    195192} 
    196 ?> 
    197193}}} 
    198194 
     
    222218     return $arrResults; 
    223219} 
    224 ?> 
    225220}}} 
    226221 
     
    241236 * OK シングルトンが保証され, トランザクションの扱いが容易になる 
    242237 */ 
    243 $objQuery =& SC_Query::getSingletonInstance(); 
    244  
    245 ?> 
     238$objQuery = SC_Query::getSingletonInstance(); 
    246239}}} 
    247240 
     
    270263 
    271264    } 
    272     $objQuery =& SC_Query::getSingletonInstance(); 
     265    $objQuery = SC_Query::getSingletonInstance(); 
    273266    $arrResults = $objQuery->select('*', 'table_name', $where, $arrValues); 
    274267    return $arrResults; 
     
    276269$arrResults = getResults(); 
    277270$arrResults2 = getResults($arrParams); 
    278  
    279 ?> 
    280271}}} 
    281272 
     
    287278 
    288279/** NG SC_Query::query() は使用しない */ 
    289 $objQuery =& SC_Query::getSingletonInstance(); 
     280$objQuery = SC_Query::getSingletonInstance(); 
    290281$objQuery->query('INSERT INTO table_name (col1, col2) VALUES (?, ?)', arrary($col1, $col2)); 
    291282 
    292283/** OK SC_Query::insert(), SC_Query::update(),  SC_Query::delete() を使用する */ 
    293 $objQuery =& SC_Query::getSingletonInstance(); 
     284$objQuery = SC_Query::getSingletonInstance(); 
    294285$objQuery->insert('table_name', array('col1' => $col1, 
    295286                                      'col2' => $col2)); 
    296  
    297 ?> 
    298 }}} 
     287}}} 
     288 
     289LIMIT, OFFSET は SC_Query::setLimit(), SC_Query::setLimitOffset() を使用すること. 
     290 
     291{{{ 
     292#!php 
     293<?php 
     294 
     295/** NG LIMIT, OFFSET を直接使用しない */ 
     296$objQuery = SC_Query::getSingletonInstance(); 
     297$arrResults = $objQuery->getAll('SELECT * FROM table_name WHERE del_flg = 0 LIMIT 10 OFFSET 5'); 
     298 
     299/** OK SC_Query::setLimit(), SC_Query::setLimitOffset() を使用する */ 
     300$objQuery = SC_Query::getSingletonInstance(); 
     301$objQuery->setLimitOffset(10, 5); 
     302$arrResults = $objQuery->select('*', 'table_name', 'del_flg = ?', array('0')); 
     303}}} 
     304 
     305RDBMS の可搬性向上のため USING 句は使用しないこと 
     306 
     307{{{ 
     308#!php 
     309<?php 
     310 
     311/** NG USING 句は使用しない */ 
     312$objQuery = SC_Query::getSingletonInstance(); 
     313$arrResults = $objQuery->select('T1.*', 'table_name T1 JOIN table2_name T2 USING(col)'); 
     314 
     315/** OK ON 句 を使用する */ 
     316$objQuery = SC_Query::getSingletonInstance(); 
     317$arrResults = $objQuery->select('T1.*', 'table_name T1 JOIN table2_name T2 ON T1.col = T2.col'); 
     318}}} 
     319 
     320 
    299321== 入力チェック == 
    300322 
     
    327349} 
    328350$this->register($arrForm); 
    329  
    330 ?> 
    331351}}} 
    332352 
     
    346366    // 外部からは $conn という変数を使用しているのがわからない 
    347367    if (is_null($conn)) { 
    348         $conn =& new ClassName(); 
     368        $conn = new ClassName(); 
    349369    } 
    350370} 
     
    358378    } 
    359379} 
    360 ?> 
    361380}}} 
    362381 
     
    378397 */ 
    379398$arrProducts = getProducts(); 
    380  
    381 ?> 
    382399}}} 
    383400 
     
    402419 */ 
    403420$product_id = getProductId(); 
    404  
    405 ?> 
    406421}}} 
    407422 
     
    443458  * is_dst を mktime() に渡すこと。 かわりにタイムゾーン処理用の新しい関数を使用します。 
    444459 
    445 以下の機能も, PHP5.3.x で非推奨となっているが, PHP4互換のために使用しても良い 
    446  
    447   * new の返り値を参照で代入すること 
    448   * 呼び出し時の参照渡し 
     460~~以下の機能も, PHP5.3.x で非推奨となっているが, PHP4互換のために使用しても良い~~ 
     461EC-CUBE 2.12.0 から PHP4 は非対応となりました. 
     462  * ~~new の返り値を参照で代入すること~~ 
     463  * ~~呼び出し時の参照渡し~~ 
    449464 
    450465参考