Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
| 1 | <?php |
||
| 10 | class Hilbert { |
||
| 11 | |||
| 12 | var $hilbert_map = array( |
||
| 13 | 'a' => array( |
||
| 14 | "0, 0" => array(0, 'd'), |
||
| 15 | "0, 1" => array(1, 'a'), |
||
| 16 | "1, 0" => array(3, 'b'), |
||
| 17 | "1, 1" => array(2, 'a'), |
||
| 18 | ), |
||
| 19 | 'b' => array( |
||
| 20 | "0, 0" => array(2, 'b'), |
||
| 21 | "0, 1" => array(1, 'b'), |
||
| 22 | "1, 0" => array(3, 'a'), |
||
| 23 | "1, 1" => array(0, 'c'), |
||
| 24 | ), |
||
| 25 | 'c' => array( |
||
| 26 | "0, 0" => array(2, 'c'), |
||
| 27 | "0, 1" => array(3, 'd'), |
||
| 28 | "1, 0" => array(1, 'c'), |
||
| 29 | "1, 1" => array(0, 'b'), |
||
| 30 | ), |
||
| 31 | 'd' => array( |
||
| 32 | "0, 0" => array(0, 'a'), |
||
| 33 | "0, 1" => array(3, 'c'), |
||
| 34 | "1, 0" => array(1, 'd'), |
||
| 35 | "1, 1" => array(2, 'd'), |
||
| 36 | ), |
||
| 37 | ); |
||
| 38 | |||
| 39 | var $rev_map = Array( |
||
| 40 | 'a' => Array( |
||
| 41 | Array(3, 'd'), |
||
| 42 | Array(1, 'a'), |
||
| 43 | Array(0, 'a'), |
||
| 44 | Array(2, 'c'), |
||
| 45 | ), |
||
| 46 | 'b' => Array( |
||
| 47 | Array(0, 'c'), |
||
| 48 | Array(2, 'b'), |
||
| 49 | Array(3, 'b'), |
||
| 50 | Array(1, 'd'), |
||
| 51 | ), |
||
| 52 | 'c' => Array( |
||
| 53 | Array(0, 'b'), |
||
| 54 | Array(1, 'c'), |
||
| 55 | Array(3, 'c'), |
||
| 56 | Array(2, 'a'), |
||
| 57 | ), |
||
| 58 | 'd' => Array( |
||
| 59 | Array(3, 'a'), |
||
| 60 | Array(2, 'd'), |
||
| 61 | Array(0, 'd'), |
||
| 62 | Array(1, 'b'), |
||
| 63 | ), |
||
| 64 | ); |
||
| 65 | |||
| 66 | /** |
||
| 67 | * @var int |
||
| 68 | */ |
||
| 69 | protected $recursion; |
||
| 70 | |||
| 71 | /** |
||
| 72 | * Hilbert constructor. |
||
| 73 | * |
||
| 74 | * @param null $recursion |
||
| 75 | */ |
||
| 76 | public function __construct($recursion = NULL) { |
||
| 82 | |||
| 83 | /** |
||
| 84 | * @param $recursion |
||
| 85 | * |
||
| 86 | * @return $this |
||
| 87 | */ |
||
| 88 | public function setRecursion($recursion) { |
||
| 92 | |||
| 93 | /** |
||
| 94 | * @return int |
||
| 95 | */ |
||
| 96 | public function getRecursion() { |
||
| 99 | |||
| 100 | |||
| 101 | View Code Duplication | function point_to_hilbert($x, $y, $order = 16, $map = "hilbert_map_1", $mode = "hilbert") { |
|
| 113 | |||
| 114 | View Code Duplication | function hilbert_to_point($hilbert, $order) { |
|
| 139 | |||
| 140 | |||
| 141 | View Code Duplication | function xy2d($x, $y, $order = 16) { |
|
| 155 | |||
| 156 | View Code Duplication | function d2xy($hilbert, $order = 16) { |
|
| 181 | |||
| 182 | function test_pth() { |
||
| 193 | |||
| 194 | } |
||
| 195 |
This check marks property names that have not been written in camelCase.
In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection string becomes
databaseConnectionString.