Phyxo et PHP 8

Phyxo fonctionne sans aucun soucis avec PHP 8, sorti au mois de novembre 2020. Phyxo nécessite php 7.3 au minimum. D'ailleurs je vais changer ce minimum et passer à php 7.4 à minima car le support actif de php 7.3 s'est arrêté au mois de janvier 2021. La version 7.3 ne reçoit plus que des patchs de sécurité et va arriver en fin de vie à la fin de 2021. On peut voir toutes les versions supportées sur le le site officiel. 

La version 8 de PHP apporte de nombreuses nouveautés. Une évolution pose un petit problème : l'ordre des paramètres d'une fonction ou d'une méthodePHPStan se plaint car le code de Phyxo contient de nombreuses méthodes dont certains paramètres obligatoires suivent des paramètres optionnels. Un exemple valant mieux qu'un long discours voici une méthode qui fait râler PHPStan :


public function findRandomImages(array $forbidden_categories = [], int $max): array
{
   // code de la méthode
}

Ce code fonctionne parfaitement. Mais si on exécute ce code avec PHP 8, on a en retour le message suivant :

Deprecated: Required parameter $max follows optional parameter $forbidden_categories

Cet avertissement dénote un problème de logique dans le prototype de la méthode. Si la méthode accepte que le paramètre $forbidden_categories soit non défini alors il doit être après le paramètre obligatoire $max. C'est le sens du message d'avertissement renvoyé.  
 

Haut de page