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 |
||
22 | View Code Duplication | abstract class AbstractDelegateContextualHydrator extends AbstractDelegateHydrator implements ContextualHydrator |
|
1 ignored issue
–
show
|
|||
23 | { |
||
24 | |||
25 | /** |
||
26 | * Properties |
||
27 | */ |
||
28 | |||
29 | /** |
||
30 | * Whether or not to provide a fallback empty context, when a `null` context |
||
31 | * is otherwise provided, to make processes simpler by not having to rely on |
||
32 | * null checks of the actual parameter before usage. |
||
33 | * |
||
34 | * @var bool |
||
35 | */ |
||
36 | private $provide_fallback_context = false; |
||
37 | |||
38 | |||
39 | /** |
||
40 | * Methods |
||
41 | */ |
||
42 | |||
43 | /** |
||
44 | * Constructor |
||
45 | * |
||
46 | * @param bool $provide_fallback_context Whether or not to provide a |
||
47 | * fallback empty context, when a `null` context is otherwise provided, to |
||
48 | * make processes simpler by not having to rely on null checks of the |
||
49 | * actual parameter before usage. |
||
50 | */ |
||
51 | 6 | protected function __construct(bool $provide_fallback_context = false) |
|
55 | |||
56 | /** |
||
57 | * {@inheritdoc} |
||
58 | * |
||
59 | * @param mixed $incoming The input data. |
||
60 | * @param mixed $model The model to hydrate. |
||
61 | * @param Map|null $context An optional generic key-value map, for providing |
||
62 | * contextual values during the hydrate process. |
||
63 | * @return mixed The hydrated model. |
||
64 | */ |
||
65 | 6 | public function hydrate($incoming, $model, Map $context = null) |
|
76 | } |
||
77 |
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.