La refactorisation du code est un aspect important de la création et de la maintenance de logiciels.
Lors de la refactorisation manuelle du code, que vous utilisiez de l'ancien code ou que vous créiez du nouveau code, il est facile de commettre des erreurs, comme oublier d'utiliser du code lorsque vous renommez une méthode. C'est pourquoi j'aime utiliser régulièrement la fonctionnalité de refactoring de PhpStorm. (Apprentissage recommandé : phpstorm)
Si c'est la première fois que vous entendez parler du terme, Martin Fowler décrit le refactoring comme :
重构是一种用于改进现有代码库设计的受控技术。它的本质是应用一系列小的行为保留转换,每个转换“都太小,不值得做 ”。但是,每个转换的累积效果都非常显着。通过分步进行,可以降低引入错误的风险。您还可以避免在进行重组时损坏系统,这使您可以在较长的时间内逐步重构系统。
Le refactoring couvre une gamme de techniques différentes, notamment le déplacement, l'extraction, la copie, la suppression et le renommage. Ceux-ci couvrent tous les types de modifications que vous pourriez apporter à votre code au fil du temps.
Heureusement, la fonctionnalité de refactoring de PhpStorm (incluse dans le package de base) prend en charge toutes ces fonctionnalités. Dans ce tutoriel, je vais en parcourir certains étape par étape. Spécial :
Extraire le code vers une nouvelle méthode
Renommer la fonction
Modifier la signature de la fonction
Extraire le code vers la nouvelle méthode Méthode
Extraire du code dans une nouvelle méthode, c'est du refactoring que je fais plus que la plupart (et peut-être n'importe quoi d'autre). Je ne peux pas compter le nombre de fois où j'ai rencontré de longues fonctions qui pourraient être mieux organisées en les décomposant en une série de fonctions plus petites, plus réutilisables et plus testables.
Prenons la fonction suivante comme exemple.
public function populate($data) { if (is_array($data) && empty($data)) { throw new HydrationException(); } $this->id = $data['id']; $this->userId = $data['userId']; $this->entry = $data['entry']; $this->created = $data['created']; $this->updated = $data['updated']; }
Bien que petit, c'est suffisant pour cet exemple. Disons que les cinq lignes à la fin de la fonction sont nécessaires à d'autres parties de la classe ou peuvent être mieux utilisées dans une fonction distincte.
Ce que nous voulons faire, c'est les extraire dans une méthode distincte. Pour ce faire, nous mettons d'abord en évidence la ligne que nous voulons extraire et cliquons sur "Refactor->Extract->Method". Cela affichera la boîte de dialogue Méthode d'extraction, que vous pouvez voir ci-dessous, pré-remplie avec un ensemble d'options par défaut.
La moindre des choses est de renseigner un nom pour la méthode. Les options restantes peuvent être laissées car elles constituent un bon ensemble de valeurs par défaut. Cependant, j'ai également fait une chose supplémentaire, qui consistait à spécifier un indice de type
$data
pour le seul paramètre. De cette façon, la fonctionnalité est plus claire et le bloc PhpDoc généré contiendra également cette information. Cliquer sur Refactor peut à la fois générer une nouvelle méthode et remplacer le code en surbrillance par un appel à celui-ci, que vous pouvez voir ci-dessous.
public function populate($data) { if (is_array($data) && empty($data)) { throw new HydrationException(); } $this->hydrateMemberVariables($data); } ///...intervening code public function populate($data) { if (is_array($data) && empty($data)) { throw new HydrationException(); } $this->hydrateMemberVariables($data); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!