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 |
||
| 33 | class InstallController extends AbstractInstallController |
||
| 34 | { |
||
| 35 | /** |
||
| 36 | * Page d'accueil de l'installation. |
||
| 37 | * |
||
| 38 | * @Route("/", name="gs_install") |
||
| 39 | * |
||
| 40 | * @return \Symfony\Component\HttpFoundation\Response Rendue de la page |
||
| 41 | */ |
||
| 42 | public function indexAction() |
||
| 46 | |||
| 47 | /** |
||
| 48 | * Etape 1 de l'installation. |
||
| 49 | * Création des utilisateurs. |
||
| 50 | * |
||
| 51 | * @Route("/step1", name="gs_install_st1") |
||
| 52 | * @Method({"POST","GET"}) |
||
| 53 | * @Template("AppBundle:install:step1.html.twig") |
||
| 54 | * |
||
| 55 | * @param \Symfony\Component\HttpFoundation\Request $request Requète du formulaire |
||
| 56 | * |
||
| 57 | * @return array|\Symfony\Component\HttpFoundation\Response Rendue de la page |
||
| 58 | */ |
||
| 59 | public function step1Action(Request $request) |
||
| 85 | |||
| 86 | /** |
||
| 87 | * Etape 2 de l'installation. |
||
| 88 | * Création de l'entreprise. |
||
| 89 | * |
||
| 90 | * @Route("/step2", name="gs_install_st2") |
||
| 91 | * @Method({"POST","GET"}) |
||
| 92 | * @Template("AppBundle:install:step2.html.twig") |
||
| 93 | * |
||
| 94 | * @param \Symfony\Component\HttpFoundation\Request $request Requète du formulaire |
||
| 95 | * |
||
| 96 | * @return \Symfony\Component\HttpFoundation\RedirectResponse|array Rendue de la page |
||
| 97 | */ |
||
| 98 | public function step2Action(Request $request) |
||
| 110 | |||
| 111 | /** |
||
| 112 | * Etape 3 de l'installation. |
||
| 113 | * Création de la configuration. |
||
| 114 | * |
||
| 115 | * @Route("/step3", name="gs_install_st3") |
||
| 116 | * @Method({"POST","GET"}) |
||
| 117 | * @Template("AppBundle:install:step3.html.twig") |
||
| 118 | * |
||
| 119 | * @param \Symfony\Component\HttpFoundation\Request $request Requète du formulaire |
||
| 120 | * |
||
| 121 | * @return \Symfony\Component\HttpFoundation\RedirectResponse| |
||
| 122 | * array<string,string|null|Settings|\Symfony\Component\Form\FormView> Rendue de la page |
||
| 123 | */ |
||
| 124 | public function step3Action(Request $request) |
||
| 136 | |||
| 137 | /** |
||
| 138 | * Etape 4 de l'installation. |
||
| 139 | * Cronfiguration de l'application. |
||
| 140 | * |
||
| 141 | * @Route("/step4", name="gs_install_st4") |
||
| 142 | * @Method({"GET"}) |
||
| 143 | * @Template("AppBundle:install:step4.html.twig") |
||
| 144 | * |
||
| 145 | * @return \Symfony\Component\HttpFoundation\Response Rendue de la page |
||
| 146 | */ |
||
| 147 | public function step4Action() |
||
| 151 | |||
| 152 | /** |
||
| 153 | * Etape 5 de l'installation. |
||
| 154 | * Création des fournisseurs. |
||
| 155 | * |
||
| 156 | * @Route("/step5", name="gs_install_st5") |
||
| 157 | * @Method({"POST","GET"}) |
||
| 158 | * @Template("AppBundle:install:step5.html.twig") |
||
| 159 | * |
||
| 160 | * @param \Symfony\Component\HttpFoundation\Request $request Requète du formulaire |
||
| 161 | * |
||
| 162 | * @return \Symfony\Component\HttpFoundation\RedirectResponse| |
||
| 163 | * array<string,string|null|Supplier|\Symfony\Component\Form\FormView> Rendue de la page |
||
| 164 | */ |
||
| 165 | public function step5Action(Request $request) |
||
| 177 | |||
| 178 | /** |
||
| 179 | * Etape 6 de l'installation. |
||
| 180 | * Création des articles. |
||
| 181 | * |
||
| 182 | * @Route("/step6", name="gs_install_st6") |
||
| 183 | * @Method({"POST","GET"}) |
||
| 184 | * @Template("AppBundle:install:step6.html.twig") |
||
| 185 | * |
||
| 186 | * @param \Symfony\Component\HttpFoundation\Request $request Requète du formulaire |
||
| 187 | * |
||
| 188 | * @return \Symfony\Component\HttpFoundation\RedirectResponse| |
||
| 189 | * array<string,string|null|Article|\Symfony\Component\Form\FormView> Rendue de la page |
||
| 190 | */ |
||
| 191 | public function step6Action(Request $request) |
||
| 203 | |||
| 204 | /** |
||
| 205 | * Etape 7 de l'installation. |
||
| 206 | * Inventaire d'installation. |
||
| 207 | * |
||
| 208 | * @Route("/step7", name="gs_install_st7") |
||
| 209 | * @Method({"GET"}) |
||
| 210 | * @Template("AppBundle:install:step7.html.twig") |
||
| 211 | * |
||
| 212 | * @return array Rendue de la page |
||
| 213 | */ |
||
| 214 | public function step7Action() |
||
| 226 | } |
||
| 227 |
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.