-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
33 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8ed18da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il y a un problème dans les derniers contrôles de ce commit.
Le dernier if ne sert à rien vu que tu es déjà dans un if avec cette condition (614)
617 ne sert à rien vu que tu es déjà dans statut clos avec 614
615 à 617 : je pense que les && et || sont mal implémentés car là si $requester tu n'as meme plus le controle du statut
8ed18da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Je suis en désaccord sur les 2 remarques.
617 n'es't pas en doublon justement a cause du || à la ligne 616
La condition indique qu'un ticket est ré-ouvrable si :
OU
8ed18da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oui, donc c'est bien l'implémentation avec les parenthèse qui n'est pas bon (je m'en doutais un peu).
En effet, suivant la Précédence des opérateurs PHP, && est évolué avant ||
8ed18da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oui pour la priorité des opérateurs,
mais il n'y a, à mon sens, pas de problème, ni de manque de parenthèses
J'extrait la condition en enlevant le test sur newID() et je l'ai commenté un peu :
8ed18da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Si il manque des parenthèses.
Là il va te faire
nouveau suivi
ET statut clos ET statut autorisé ET statut réouvrable (ne sert à rien avec la première condition)
OU demandeur ET pas tech
Tu devrais avoir une parenthèse englobant les 2 première conditions qui vont ensmble et une pour les 2 suivantes
if (is new
&& ((in array statut clos
&& statut autorisé)
|| (demandeur
&& pas tech
&& in array statut réouvrable)))
8ed18da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mais non !
Comme tu le dis toi même :
suivant la Précédence des opérateurs PHP, && est évalué avant ||
-> http://php.net/manual/fr/language.operators.precedence.php
Ce qui veux dire que toute les parties entre && sont évaluées et donnent un booléen
et ensuite les || sont évalués sur ces résultats booléens
Pour exemple :
Donc je maintiens fortement que les parenthèses que tu veux ajouter peuvent l'être pour un souci de lisibilité (ce n'est pas mon point de vue) mais que coté logique, elles sont parfaitement inutiles.
Pour reprendre donc mon exemple :
in_array($ticket->fields["status"], $ticket->getClosedStatusArray()) // le statut est clos
&& $ticket->isAllowedStatus($ticket->fields['status'], Ticket::INCOMING) // matrice profil OK
// 1 - Toute la partie du dessus est évaluée pleinement
|| // 3 - le résultat des 2 parties est comparée par l'opérateur OU
// 2 - Toute la partie ci dessous est évaluée pleinement
$requester && !$tech // seulement le demandeur
&& in_array($ticket->fields['status'], Ticket::getReopenableStatusArray()) // statut ré-ouvrable
8ed18da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry but I really don't understand this piece of code and its goal.
For me the only case where reopen (by requester) is needed
And IIRC from mailgate, not closed ticket are auto-reopen if needed, closed ticket are dupliacted as a new one.
8ed18da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alors il ne faut plus respecter le coding standard qui permet de mieux comprendre le code sans connaite par coeur la précédence des opérateurs?
8ed18da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yllen
I agree with you, clarity is better than operator rules. Especially when as developpers we often switch between diffent languages (PHP, Javascript, C, VB, scripts,...) which don't have always the same rules for precedences.
my one cent contribution :)
Tomolimo
8ed18da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fine, I'll re-add brackets for CS and clarity (it's a better argument than previous, thanks).