116 votes

Avertissement : Le ciblage de l'interrupteur "continue" est équivalent à "break". Vouliez-vous utiliser "continue 2" ?

J'ai php7.3 et symfony2.8 Quand j'essaie de créer les classes avec la console, j'obtiens cette erreur :

[Symfony \Component\Debug\Exception\ContextErrorException ]Avertissement : Le ciblage de l'interrupteur "continue" est équivalent à "break". Voulez-vous utiliser utiliser "continue 2" ?

3 votes

Veuillez inclure votre code dans la question. (Et pour l'éditeur, veuillez ne pas ajouter à la question des choses que le PO n'a pas réellement dites, aussi utile que cela puisse paraître. Cela met des mots dans leur bouche et devient confus).

0 votes

Essayez "composer la mise à jour". Cela peut aider ou non. L'avertissement est le résultat d'un "correctif" récent de php et nécessite une légère mise à jour pour être corrigé. Vous pouvez également rencontrer l'avertissement count() null. @trincot - Et oui, l'avertissement est clair. Le problème est qu'il est généré par une bibliothèque tierce. Dans un bloc de code très confus.

0 votes

Avez-vous vérifié si votre serveur est conforme aux exigences minimales ? La version actuelle de Symfony est 4.2.3. Il est donc très peu probable que la version 2.8 supporte PHP/7.3, qui a été publié il y a moins de deux mois.

149voto

Miftah Mizwar Points 436

J'ai le même problème et j'ai eu cette erreur aussi, mais dans mon cas cette erreur apparaît quand j'essaie d'exécuter composer install o composer update .

et je résous ce problème en exécutant composer self-update . il fonctionne sur mon projet.

0 votes

Si cela échoue (comme pour moi), la prochaine étape est d'essayer la réponse d'Avnish alok à cette question. La version de composer installée par apt est trop ancienne.

0 votes

C'est la bonne réponse, bien qu'elle puisse bénéficier de l'information de base suivante : "La version de votre compositeur est trop ancienne, mettez-la à jour". Cela aiderait les personnes comme Trevor à réaliser qu'elles sont sur la bonne voie, même si la mise à jour automatique échoue.

0 votes

Pour moi, la bonne solution était simplement de lancer composer update lors de l'installation, l'erreur s'est produite, bien qu'il soit totalement préférable de maintenir composer à jour lui-même, juste pour ceux qui doivent penser aux implications que cela pourrait avoir sur d'autres projets sur le même serveur ;)

54voto

Avnish Alok Points 60

Votre compositeur est peut-être obsolète. Vous trouverez ci-dessous les étapes à suivre pour vous débarrasser de cette erreur.

Note : Pour les professionnels de Windows, seules les étapes 2 et 3 sont nécessaires.

Étape 1

Retirez le compositeur :

sudo apt-get remove composer

Étape 2

Téléchargez le compositeur :

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

Étape 3

Exécuter le fichier composer-setup.php

php composer-setup.php

Étape 4

Enfin, déplacez le compositeur :

sudo mv composer.phar /usr/local/bin/composer  

Votre compositeur devrait être mis à jour maintenant. Pour le vérifier, lancez la commande :

compositeur

Vous pouvez supprimer le compositeur téléchargé par la commande php

php -r "unlink('composer-setup.php');"

3 votes

À mon avis, ce n'est pas lié à composer, mais à un problème avec php 7.3.

1 votes

Pour une utilisation globale, on peut essayer l'alias composer='/usr/local/bin/composer'.

45voto

Jon Points 469

Il me semble qu'il s'agit d'une incompatibilité rétroactive avec PHP 7.3 pour l'interface utilisateur. continue dans les déclarations Switch. Jetez un coup d'œil à la section "Avertissement concernant les questions Switch" dans le document Changements incompatibles avec le passé .

J'ai rencontré le même problème avec Symfony 3.3 utilisant PHP 7.3 et la mise à jour vers PHP 7.2 a résolu l'avertissement.

0 votes

Oui, c'est la bonne réponse.

29voto

d212digital Points 81

J'ai remplacé continue par continue 2 à la ligne 1579 du shortcodeComon.php et cela a réglé mon problème.

   if(trim($custom_link[$i]) == ""){

           continue;

    }

Changer pour :

  if(trim($custom_link[$i]) == ""){

             continue 2;

   }

0 votes

Brut, mais efficace..

0 votes

Bonne solution. Très appréciée. J'ai déjà donné une note positive à cette réponse.

23voto

Cosmo Arun Points 164

J'ai mis à jour vers PHP 7.3, et aucun de ces éléments ne fonctionnait pour moi avant d'utiliser,

sudo wget https://getcomposer.org/download/1.8.0/composer.phar -O /usr/local/bin/composer && sudo chmod 755 /usr/local/bin/composer

C'est juste la dépendance de la version. PHP 7.3

et la mise à jour du compositeur a fonctionné comme un charme !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X