J'essaye de passer au vert mes tests sur Kahlan mais je suis bloqué et je ne sais pas comment résoudre ce problème !

private function sortListeners($event)
    {
        usort($this->listeners[$event], function ($a, $b): bool {
            return $a->priority < $b->priority;
        });
    }

Ce que je veux

J'aimerais les passer à tout prix au vert et/ou trouver une alternative à ceci.

Ce que j'obtiens

2 sur 3 passent au vert et 1 passe au rouge avec comme erreur : Event\Emitter
::on
✖ it should trigger events in the right order
an uncaught exception has been thrown in src/Emitter.php line 71

  message:Kahlan\PhpErrorException Code(0) with message "E_DEPRECATED usort(): Returning bool from comparison function is deprecated, return an integer less than, equal to, or greater than zero"

:(

3 réponses


Bonjour, d'après ton message d'erreur cela vient de la fonction usort() qui doit renvoyer un entier et non pas un booléen comme c'était le cas avant PHP 8.0. Il faut donc que tu modifie la fonction qui fait la comparaison.

bonjour JRcode, j'ai changé l'opérateur de comparaison et ça marche. Merci

Top :)