Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
Voilà j'ai intégré ma petite plate-forme d'intégration continue via Jenkins c'est cool ça marche super bien mais y'a un truc qui me chafouine ...
Dans mon inté continue j'ai installé le plug-in phpmd, alias "PHP Mess Detector".
Et il me met un grosse erreur sur TOUTES mes méthodes de classes au niveau de mes hydrateurs.
Pourtant ils n'ont pas l'air méchant, en voici un :
[lang=php] public function exchangeArray($data) { $this->iMaiAttestationId = (isset($data['maiAttestation_id'])) ? $data['maiAttestation_id'] : 0; $this->iSyndicClientId = (isset($data['syndic_client_id'])) ? $data['syndic_client_id'] : 0; $this->sSyndic = (isset($data['syndic'])) ? $data['syndic'] : null; $this->dDateDocument = (isset($data['dateDocument'])) ? $data['dateDocument'] : null; $this->sNomFichier = (isset($data['nomFichier'])) ? $data['nomFichier'] : null; $this->dDateInsert = (isset($data['dateInsert'])) ? $data['dateInsert'] : null; }
Et voici mon rendu :
The method exchangeArray() has an NPath complexity of 152587890625. The configured NPath complexity threshold is 200.
Heuu concrètement ça veut dire quoi c'est quoi le NPath complexity ? Ai-je mal fait mon hydrateur ?
Merci d'avance pour vos remarques
Dernière modification par amelie (02-07-2015 17:34:20)
Hors ligne
Bonjour,
Le Npath complexity est la somme de tous les cas possibles d'une méthode. Voici une phrase (pas de moi) qui explique mieux ce que je veux te dire :
La complexité NPath tente de répondre à la question « combien y-a-t-il de possibilités de chemins différents ? »
En gros dans cette structure de méthode tu possèdes 6 if/else. Cela fait irrémédiablement augmenter ton graphe des cas possibles mêmes si c'est une méthode basique.
Ton hydrateur semble bon.
Par contre je doute sur la donnée 152587890625 elle me semble vraiment trop élevé.
Hors ligne
Salut,
Merci pour ta réponse.
Du coup je suis un peu perplexe parce que j'ai l'impression que trop de complexité = mauvais code.
Pourtant un hydrateur c'est un hydrateur, non ?
Dernière modification par amelie (02-07-2015 10:56:13)
Hors ligne
Bonjour,
Trop de complexité = mauvais code, oui et non.
Si un code est complexe mais qu'il fait le travail qu'on lui demande de façon plus ou moins optimale (a plusieurs niveaux : ressources serveur, temps etc..) C'est pas une mauvais code.
Si le code est complexe avec une complexité cyclomatique énorme, que les perfs sont mauvaises (trop de ressources consommées, l'utilisateur patiente trop longtemps etc...), la il faut réfléchir et penser la chose différemment afin d'optimiser.
Je pense que PHPmd, est a la ramasse sur ce ton code s'il te sort une complexité de cette nature. La méthode est bonne pour moi et ne nécessite pas d'être revue.
Hors ligne