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 AbstractDelegateContextualBuilder extends AbstractDelegateBuilder implements ContextualBuilder |
|
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 Map|null $context An optional generic key-value map, for providing |
||
61 | * contextual values during the build process. |
||
62 | * @return mixed The built model. |
||
63 | */ |
||
64 | 6 | public function build($incoming, Map $context = null) |
|
75 | } |
||
76 |
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.