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 |
||
| 9 | View Code Duplication | class DrillDownComparisonItems extends Model |
|
|
|
|||
| 10 | { |
||
| 11 | |||
| 12 | protected $dimension = null; |
||
| 13 | |||
| 14 | protected $metrics = null; |
||
| 15 | |||
| 16 | protected $expand = null; |
||
| 17 | |||
| 18 | protected $mappingClasses = [ |
||
| 19 | 'dimension' => 'Yandex\Metrica\Stat\Models\Dimension', |
||
| 20 | 'metrics' => 'Yandex\Metrica\Stat\Models\ComparisonMetrics' |
||
| 21 | ]; |
||
| 22 | |||
| 23 | protected $propNameMap = []; |
||
| 24 | |||
| 25 | /** |
||
| 26 | * Retrieve the dimension property |
||
| 27 | * |
||
| 28 | * @return Dimension|null |
||
| 29 | */ |
||
| 30 | 2 | public function getDimension() |
|
| 34 | |||
| 35 | /** |
||
| 36 | * Set the dimension property |
||
| 37 | * |
||
| 38 | * @param Dimension $dimension |
||
| 39 | * @return $this |
||
| 40 | */ |
||
| 41 | 1 | public function setDimension($dimension) |
|
| 42 | { |
||
| 43 | 1 | $this->dimension = $dimension; |
|
| 44 | 1 | return $this; |
|
| 45 | } |
||
| 46 | |||
| 47 | /** |
||
| 48 | * Retrieve the metrics property |
||
| 49 | * |
||
| 50 | * @return ComparisonMetrics|null |
||
| 51 | */ |
||
| 52 | 2 | public function getMetrics() |
|
| 56 | |||
| 57 | /** |
||
| 58 | * Set the metrics property |
||
| 59 | * |
||
| 60 | * @param ComparisonMetrics $metrics |
||
| 61 | * @return $this |
||
| 62 | */ |
||
| 63 | 1 | public function setMetrics($metrics) |
|
| 64 | { |
||
| 65 | 1 | $this->metrics = $metrics; |
|
| 66 | 1 | return $this; |
|
| 67 | } |
||
| 68 | |||
| 69 | /** |
||
| 70 | * Retrieve the expand property |
||
| 71 | * |
||
| 72 | * @return bool|null |
||
| 73 | */ |
||
| 74 | 2 | public function getExpand() |
|
| 78 | |||
| 79 | /** |
||
| 80 | * Set the expand property |
||
| 81 | * |
||
| 82 | * @param bool $expand |
||
| 83 | * @return $this |
||
| 84 | */ |
||
| 85 | 1 | public function setExpand($expand) |
|
| 90 | } |
||
| 91 |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.