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 |
||
25 | class TokenFactory implements TokenFactoryInterface |
||
26 | { |
||
27 | private $_class; |
||
28 | private $_base; |
||
29 | private $_rule; |
||
30 | private $_type = 0x3; |
||
31 | |||
32 | private $_cache = []; |
||
33 | |||
34 | /** |
||
35 | * Constructor |
||
36 | * |
||
37 | * @param string $class {@see } |
||
38 | */ |
||
39 | public function __construct($class) |
||
43 | 88 | ||
44 | /** |
||
45 | * @param $name |
||
46 | * @param array $params |
||
47 | * |
||
48 | * @return false|Token|null |
||
49 | */ |
||
50 | public function create($name, $params = [ ]) |
||
68 | 48 | ||
69 | 48 | private function link($name, $params) { |
|
101 | 48 | ||
102 | private function getName($name) |
||
110 | 23 | ||
111 | 23 | /** |
|
112 | * @param string $base |
||
113 | 23 | */ |
|
114 | public function setBase($base) |
||
119 | 16 | ||
120 | /** |
||
121 | 16 | * @param mixed $rule |
|
122 | 16 | */ |
|
123 | 16 | public function setRule($rule) |
|
127 | |||
128 | 85 | /** |
|
129 | * @param mixed $class |
||
130 | 85 | * |
|
131 | 85 | * @throws \InvalidArgumentException |
|
132 | */ |
||
133 | public function setClass($class) |
||
141 | |||
142 | public function setType($type) |
||
146 | } |
||
147 |