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 | trait HasSettings |
||
10 | { |
||
11 | 4 | public function allSettings() |
|
15 | |||
16 | 16 | public function setSettings($key, $value) |
|
20 | |||
21 | 8 | View Code Duplication | public function getSettings($key, $default = null) |
32 | |||
33 | 2 | public function forgetSettings($key) |
|
37 | |||
38 | public function flushSettings() |
||
44 | } |
||
45 |
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: