8787 sujets
Développement web côté serveur, CMS
Bon, je suis provisoirement passé en PHP 7.4 pour exécuter le script.
Pas de problème, ça a bien marché.
Je ferai des tests en PHP 8 dès que j'aurais le temps, je suspecte une erreur fatale liée à PHP 8.
La migration de 7 vers 8 est quand même un gros boulot.
PHP 8 est mieux que PHP 7 mais il introduit des paquets de nouvelles contraintes qui ne sont pas dans l'esprit initial de PHP.
Pas de problème, ça a bien marché.
Je ferai des tests en PHP 8 dès que j'aurais le temps, je suspecte une erreur fatale liée à PHP 8.
La migration de 7 vers 8 est quand même un gros boulot.
PHP 8 est mieux que PHP 7 mais il introduit des paquets de nouvelles contraintes qui ne sont pas dans l'esprit initial de PHP.
Bonjour,
Sur le site de test j'ai découvert un bon paquet de warnings, cela explique sans doute l'erreur 503.
J'ai corrigé et cela semble bien fonctionner.
J'ai découvert aussi qu'en mode production une erreur fatale déclenche parfois l'erreur 503.
À propos de la migration PHP 7 vers PHP 8 il y aurait beaucoup à dire, je me contente d'un mot.
Modifié par boteha_2 (25 Feb 2025 - 21:28)
Sur le site de test j'ai découvert un bon paquet de warnings, cela explique sans doute l'erreur 503.
J'ai corrigé et cela semble bien fonctionner.
J'ai découvert aussi qu'en mode production une erreur fatale déclenche parfois l'erreur 503.
À propos de la migration PHP 7 vers PHP 8 il y aurait beaucoup à dire, je me contente d'un mot.
$string = 'abc';
echo $string[0];
// PHP <= 7.4
Retourne "a"
// PHP >= 8.0
Erreur fatale, $string est supposé être un tableau.
Modifié par boteha_2 (25 Feb 2025 - 21:28)
Salut,
normalement ça marche ton code
Tu peux voir un exemple ici : https://www.php.net/manual/fr/function.substr.php#example-5096
De mémoire ce qui n'est plus supporté en php8+, c'est l'accès avec les accolades
normalement ça marche ton code

Tu peux voir un exemple ici : https://www.php.net/manual/fr/function.substr.php#example-5096
De mémoire ce qui n'est plus supporté en php8+, c'est l'accès avec les accolades
$string = 'abc';
echo $string[0]; //OK
echo $string{0}; //KO
Mathieuu a raison, l'accès via des crochets ne déclenche pas d'erreur.
Les informations de migration pour chaque version sont disponibles ici :
https://www.php.net/manual/fr/appendices.php
Tu peux utiliser un outil d'analyse statique tel que PHPStan pour identifier et corriger les éventuelles erreurs d'exécution pendant le développement (via un plugin dans ton éditeur de code préféré et/ou pour de l'intégration continue) : https://phpstan.org/
Les informations de migration pour chaque version sont disponibles ici :
https://www.php.net/manual/fr/appendices.php
Tu peux utiliser un outil d'analyse statique tel que PHPStan pour identifier et corriger les éventuelles erreurs d'exécution pendant le développement (via un plugin dans ton éditeur de code préféré et/ou pour de l'intégration continue) : https://phpstan.org/
Bonjour,
Merci de votre suivi.
Tu as raison, j'ai essayé dans mon environnement et cela fonctionne.
Cependant je suis certain d'avoir eu une erreur fatale que j'ai résolue en remplaçant $v[0] par mb_substr ($v, 0, 1) et l'alerte disait bien que la variable attendue devait être un tableau...
Ce n'est pas très motivant d'essayer de reproduire une erreur fatale dans un programme qui marche, je ne vais pas plus loin pour le moment.
Bizarre...
Merci, je ne connaissais pas, c'est désormais dans mes favoris.
Quand le programme contient des requêtes vers une base de données dont les résultat sont traités dans le programme, j'ai l'impression que PHPStan ne comprend plus bien.
J'ai essayé de balancer un programme sans bug connu de 3000 lignes avec requêtes SQL et il m'a demandé d'essayer de recommencer plus tard.
Modifié par boteha_2 (26 Feb 2025 - 20:32)
Merci de votre suivi.
Mathieuu a écrit :
normalement ça marche ton code
Tu as raison, j'ai essayé dans mon environnement et cela fonctionne.
Cependant je suis certain d'avoir eu une erreur fatale que j'ai résolue en remplaçant $v[0] par mb_substr ($v, 0, 1) et l'alerte disait bien que la variable attendue devait être un tableau...
Ce n'est pas très motivant d'essayer de reproduire une erreur fatale dans un programme qui marche, je ne vais pas plus loin pour le moment.
Bizarre...
Pitet a écrit :
Tu peux utiliser un outil d'analyse statique tel que PHPStan
Merci, je ne connaissais pas, c'est désormais dans mes favoris.
Quand le programme contient des requêtes vers une base de données dont les résultat sont traités dans le programme, j'ai l'impression que PHPStan ne comprend plus bien.
J'ai essayé de balancer un programme sans bug connu de 3000 lignes avec requêtes SQL et il m'a demandé d'essayer de recommencer plus tard.
Modifié par boteha_2 (26 Feb 2025 - 20:32)
Tu as balancé 3000 lignes sur la page https://phpstan.org/try ? Cette page est juste une démo, pour utiliser PHPStan il faut l'ajouter en tant que dépendance de dév de ton projet via composer :
Puis créer un fichier de configuration phpstan.neon à la racine de ton projet pour indiquer le niveau d'analyse ainsi que le(s) dossier(s) contenant tes sources php :
Puis lancer l'analyse en ligne de commande depuis la racine de ton projet (et/ou utiliser un plugin pour que l'analyse soit faite directement dans ton éditeur de code) :
En fonction de ton projet, certaines erreurs relevées par PHPStan peuvent être ignorées en utilisant une baseline ou en utilisant un niveau d'analyse plus faible.
Tu pourras facilement trouver des détails sur chaque erreur en faisant une recherche avec le message d'erreur.
https://phpstan.org/user-guide/getting-started
composer require --dev phpstan/phpstan
Puis créer un fichier de configuration phpstan.neon à la racine de ton projet pour indiquer le niveau d'analyse ainsi que le(s) dossier(s) contenant tes sources php :
parameters:
level: max
paths:
- src
Puis lancer l'analyse en ligne de commande depuis la racine de ton projet (et/ou utiliser un plugin pour que l'analyse soit faite directement dans ton éditeur de code) :
> vendor/bin/phpstan analyse
En fonction de ton projet, certaines erreurs relevées par PHPStan peuvent être ignorées en utilisant une baseline ou en utilisant un niveau d'analyse plus faible.
Tu pourras facilement trouver des détails sur chaque erreur en faisant une recherche avec le message d'erreur.
https://phpstan.org/user-guide/getting-started