Changes between Version 3 and Version 4 of EC-CUBE標準規約/リファクタリングガイドライン
- Timestamp:
- 2012/06/07 09:25:54 (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
EC-CUBE標準規約/リファクタリングガイドライン
v3 v4 27 27 $this->arrDISP = $masterData->getMasterData('mtb_disp'); 28 28 } 29 ?>30 29 }}} 31 30 … … 78 77 79 78 /** NG SQLを実行する処理を記述してはならない */ 80 $objQuery = &SC_Query::getSingletonInstance();79 $objQuery = SC_Query::getSingletonInstance(); 81 80 $arrResults = $objQuery->select('*', 'table_name'); 82 81 … … 92 91 } 93 92 } 94 ?>95 93 }}} 96 94 … … 120 118 SC_Response_Ex::sendRedirect('complete.php'); 121 119 } 122 ?>123 120 }}} 124 121 … … 194 191 $this->assertEquals($expected, $actual); 195 192 } 196 ?>197 193 }}} 198 194 … … 222 218 return $arrResults; 223 219 } 224 ?>225 220 }}} 226 221 … … 241 236 * OK シングルトンが保証され, トランザクションの扱いが容易になる 242 237 */ 243 $objQuery =& SC_Query::getSingletonInstance(); 244 245 ?> 238 $objQuery = SC_Query::getSingletonInstance(); 246 239 }}} 247 240 … … 270 263 271 264 } 272 $objQuery = &SC_Query::getSingletonInstance();265 $objQuery = SC_Query::getSingletonInstance(); 273 266 $arrResults = $objQuery->select('*', 'table_name', $where, $arrValues); 274 267 return $arrResults; … … 276 269 $arrResults = getResults(); 277 270 $arrResults2 = getResults($arrParams); 278 279 ?>280 271 }}} 281 272 … … 287 278 288 279 /** NG SC_Query::query() は使用しない */ 289 $objQuery = &SC_Query::getSingletonInstance();280 $objQuery = SC_Query::getSingletonInstance(); 290 281 $objQuery->query('INSERT INTO table_name (col1, col2) VALUES (?, ?)', arrary($col1, $col2)); 291 282 292 283 /** OK SC_Query::insert(), SC_Query::update(), SC_Query::delete() を使用する */ 293 $objQuery = &SC_Query::getSingletonInstance();284 $objQuery = SC_Query::getSingletonInstance(); 294 285 $objQuery->insert('table_name', array('col1' => $col1, 295 286 'col2' => $col2)); 296 297 ?> 298 }}} 287 }}} 288 289 LIMIT, 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 305 RDBMS の可搬性向上のため 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 299 321 == 入力チェック == 300 322 … … 327 349 } 328 350 $this->register($arrForm); 329 330 ?>331 351 }}} 332 352 … … 346 366 // 外部からは $conn という変数を使用しているのがわからない 347 367 if (is_null($conn)) { 348 $conn = &new ClassName();368 $conn = new ClassName(); 349 369 } 350 370 } … … 358 378 } 359 379 } 360 ?>361 380 }}} 362 381 … … 378 397 */ 379 398 $arrProducts = getProducts(); 380 381 ?>382 399 }}} 383 400 … … 402 419 */ 403 420 $product_id = getProductId(); 404 405 ?>406 421 }}} 407 422 … … 443 458 * is_dst を mktime() に渡すこと。 かわりにタイムゾーン処理用の新しい関数を使用します。 444 459 445 以下の機能も, PHP5.3.x で非推奨となっているが, PHP4互換のために使用しても良い 446 447 * new の返り値を参照で代入すること448 * 呼び出し時の参照渡し460 ~~以下の機能も, PHP5.3.x で非推奨となっているが, PHP4互換のために使用しても良い~~ 461 EC-CUBE 2.12.0 から PHP4 は非対応となりました. 462 * ~~new の返り値を参照で代入すること~~ 463 * ~~呼び出し時の参照渡し~~ 449 464 450 465 参考