Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 01-07-2015 10:52:25

amelie
Membre
Lieu: Marseille
Date d'inscription: 05-02-2013
Messages: 113
Site web

[Résolu] Complexité d'un hydrateur

Bonjour à tous,

Voilà j'ai intégré ma petite plate-forme d'intégration continue via Jenkins smile 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 :

Code:

[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 hmm c'est quoi le NPath complexity ? Ai-je mal fait mon hydrateur ?

Merci d'avance pour vos remarques smile

Dernière modification par amelie (02-07-2015 17:34:20)

Hors ligne

 

#2 01-07-2015 13:47:05

JGreco
Administrateur
Date d'inscription: 22-12-2012
Messages: 432

Re: [Résolu] Complexité d'un hydrateur

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é.


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#3 02-07-2015 10:56:01

amelie
Membre
Lieu: Marseille
Date d'inscription: 05-02-2013
Messages: 113
Site web

Re: [Résolu] Complexité d'un hydrateur

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 ? hmm

Dernière modification par amelie (02-07-2015 10:56:13)

Hors ligne

 

#4 02-07-2015 11:03:28

JGreco
Administrateur
Date d'inscription: 22-12-2012
Messages: 432

Re: [Résolu] Complexité d'un hydrateur

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.


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#5 02-07-2015 17:33:59

amelie
Membre
Lieu: Marseille
Date d'inscription: 05-02-2013
Messages: 113
Site web

Re: [Résolu] Complexité d'un hydrateur

Ok, ça me rassure smile Thanks.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages