Warnung: Der Zielschalter "Weiter" entspricht "Pause". Wollten Sie "continue 2" verwenden? [geschlossen]


78

Ich habe php7.3 und symfony2.8 Wenn ich versuche, die Klassen mit der Konsole zu erstellen, erhalte ich folgende Fehlermeldung:

[Symfony \ Component \ Debug \ Exception \ ContextErrorException] Warnung: Der Targeting-Schalter "continue" entspricht "break". Wollten Sie "continue 2" verwenden?


2
Bitte geben Sie Ihren Code in die Frage ein. (Und für den Herausgeber, fügen Sie bitte keine Dinge zu der Frage hinzu, die OP nicht wirklich gesagt hat, so hilfreich es auch scheinen mag. Es bringt Wörter in den Mund und wird verwirrend.)
Tyler Roper

Versuchen Sie "Composer Update". Kann oder kann nicht helfen. Die Warnung ist das Ergebnis eines kürzlich durchgeführten PHP-Fixes und erfordert ein leichtes Update, um das Problem zu beheben. Möglicherweise wird auch die Nullwarnung count () angezeigt. @ Trincot - Und ja, die Warnung ist klar. Das Problem ist, dass es von einer Bibliothek eines Drittanbieters generiert wird. In einem sehr verwirrenden Codeblock.
Cerad

Haben Sie überprüft, ob Ihr Server die Mindestanforderungen erfüllt? Die aktuelle Symfony-Version ist 4.2.3, daher ist es sehr unwahrscheinlich, dass 2.8 PHP / 7.3 unterstützt, das vor weniger als 2 Monaten veröffentlicht wurde.
Álvaro González

Ich habe gerade überprüft, dass Symfony / 2.8.49 laut Packagist am selben Tag wie PHP / 7.3 veröffentlicht wurde. Vielleicht soll diese Version Kompatibilitätsprobleme beheben (ich weiß es nicht wirklich).
Álvaro González

Antworten:


124

Ich habe das gleiche Problem und auch diesen Fehler, aber in meinem Fall zeigt dieser Fehler, wenn ich versuche, composer installoder auszuführen composer update.

und ich löse dieses Problem durch Ausführen composer self-update. es funktioniert bei meinem Projekt.


Wenn dies fehlschlägt (wie bei mir), versuchen Sie als nächstes die Antwort von Avnish alok auf diese Frage. Die von apt installierte Composer-Version ist zu alt.
Trevor

Dies ist die richtige Antwort, obwohl die Hintergrundinformationen verwendet werden könnten, die besagen, dass "Ihre Composer-Version zu alt ist, aktualisieren Sie sie". Dies würde Leuten wie Trevor helfen, zu erkennen, dass sie auf dem richtigen Weg sind, selbst wenn die Selbstaktualisierung fehlschlägt.
Matt Rabe

Für mich bestand die richtige Lösung darin, nur composer updatewährend der Installation den Fehler auszuführen, obwohl es völlig besser ist, den Komponisten selbst auf dem neuesten Stand zu halten, nur für diejenigen, die darüber nachdenken müssen, welche Auswirkungen dies auf andere Projekte auf demselben Server haben könnte. )
John Smith

47

Vielleicht ist Ihr Komponist veraltet. Im Folgenden finden Sie die Schritte, um den Fehler zu beheben.

Hinweis: Für Windows-Profis werden nur Schritt 2 und Schritt 3 benötigt und ausgeführt.


Schritt 1

Entfernen Sie den Komponisten:

sudo apt-get remove composer

Schritt 2

Laden Sie den Komponisten herunter:

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

Schritt 3

Führen Sie die Datei composer-setup.php aus

php composer-setup.php

Schritt 4

Bewegen Sie zum Schluss den Komponisten:

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


Ihr Komponist sollte jetzt aktualisiert werden. Um dies zu überprüfen, führen Sie den folgenden Befehl aus:

Komponist

Sie können den heruntergeladenen Composer per PHP-Befehl entfernen

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

1
Meiner Meinung nach hat dies nichts mit dem Komponisten zu tun, sondern mit PHP 7.3
Gabriele F.

1
Um global zu verwenden, können Sie versuchen, alias composer = '/ usr / local / bin / composer'
Eduard Brokan

27

Das Problem scheint mir eine Abwärtsinkompatibilität mit PHP 7.3 für das continueSchlüsselwort in Switch-Anweisungen zu sein. Schauen Sie sich den Abschnitt "Warnung vor Problemen mit Targeting-Switches fortsetzen" unter " Abwärtsinkompatible Änderungen" an .

Ich bin mit Symfony 3.3 unter Verwendung von PHP 7.3 auf dasselbe Problem gestoßen, und ein Downgrade auf PHP 7.2 hat die Warnung behoben.


21

Ich habe ein Upgrade auf PHP 7.3 durchgeführt, und keines davon hat bei mir funktioniert, bevor ich es verwendet habe.

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

Es ist nur die Versionsabhängigkeit. PHP 7.3

und Komponisten-Update funktionierte wie ein Zauber!


10

composer self-update composer install

Jetzt sollte es funktionieren

Geben Sie hier die Bildbeschreibung ein


1
Command "self-update" is not defined.
Oligofren

9

Haben Sie versucht, ein Komponisten-Selbst-Update durchzuführen?

composer self-update

oder

composer install


Dies gibt mir den FehlerCommand "self-update" is not defined
Mrid

Haben Sie Composer installiert? Andernfalls
laden Sie den

Ja, es wurde installiert. aber ich denke, es könnte ein Problem damit gegeben haben, es hat die Installation von Komponenten gestoppt. Ich habe es
gelöscht

6

Windows 10 Professional

PHP 7.3.1

Ich habe diese Befehle ausgeführt, um das Problem auf meinem Desktop zu beheben

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

5

In meinem Fall wurde PHP von PHP7.2.22 auf PHP7.3.9 aktualisiert.

musste also cli php downgraden, da der Composer auf dem Terminal ausgeführt wird

//checked php version
php -v //was 7.3.9

//changed cli version back to 7.2
sudo update-alternatives --set php /usr/bin/php7.2
sudo update-alternatives --set phar /usr/bin/phar7.2
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
sudo update-alternatives --set phpize /usr/bin/phpize7.2
sudo update-alternatives --set php-config /usr/bin/php-config7.2

//checked php version 
php -v //was 7.2.22

Zusätzliche Informationen Wenn Sie Apache verwenden, denken Sie daran, sowohl Cli als auch Apache in derselben Version zu belassen. In meinem Fall musste ich ein Downgrade durchführen

//changed web version back to 7.2
sudo a2dismod php7.3
sudo a2enmod php7.2
sudo service apache2 restart

Dies funktioniert mit anderen Versionen. Sie können also zwischen den Versionen wechseln. Ersetzen Sie einfach die Versionsnummern entsprechend


1
Ich hatte das gleiche Problem. Das Problem ist, dass wir immer noch eine ältere Version von Symfony (2.8) verwenden, die unter PHP 7.3 nicht richtig funktioniert.
David Baucum

4

Ich habe weiterhin 2 in Zeile 1579 in shortcodeComon.php geändert und es hat mein Problem behoben

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

           continue;

    }

Ändern:

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

             continue 2;

   }



2

das scheint ein problem mit php7.3 zu sein, denke ich.

Wenn auf Ihrem System eine andere Version installiert ist, können Sie Folgendes verwenden:

php7.1 /usr/bin/composer update // or wherever your composer is

es hat bei mir funktioniert


2

Nach dem Upgrade meiner xampp von 7.2.0 auf 7.3.0 tritt dieses Problem auf, aber nachdem ich composer.exe deinstalliert und die neueste composer.exe von composer.org installiert habe, ist das Problem behoben


2

Ich denke, es ist ein Versionsproblem. Sie müssen nur die alte Version von Composer deinstallieren und dann eine neue Installation der neuen Version durchführen.

 apt remove composer

und folgen Sie den Schritten:

  1. Laden Sie den Komponisten von der offiziellen Release-Site herunter, indem Sie den folgenden Befehl verwenden.
 wget https://getcomposer.org/download/1.6.3/composer.phar
  1. Bevor Sie mit der Installation fortfahren, sollten Sie vor der Installation umbenennen und eine ausführbare Datei erstellen.
  mv composer.phar composer
  chmod +x composer
  1. Installieren Sie nun das Paket, indem Sie den folgenden Befehl verwenden.
 ./composer
  1. Der Composer wurde jetzt erfolgreich installiert. Mit dem folgenden Befehl können Sie global darauf zugreifen. für Ubuntu 16
 mv composer /usr/bin/

für Ubuntu 18

 mv composer /usr/local/bin/

1

Auf debian 9 php7.3 funktionierte die oben eingefügte Antwort perfekt.


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

1

Ich musste Doktrin / Orm aktualisieren:

composer update doctrine/orm

Updating doctrine/orm (v2.5.13 => v2.6.6)

1

Ich habe das gleiche Problem beim Ausführen. composer install
Ich löse es, indem ich es im Composer-Verzeichnis php composer.phar self-updateund dann in meinem Projektverzeichnis machecomposer update


0

Ich hatte das gleiche Problem. aber behoben, indem Composer heruntergeladen und von Grund auf neu installiert wurde.


0

Die Antwort von @ aimme sollte akzeptiert werden!

Ich würde seine Antwort mit @ david-baucums Kommentar erweitern, weil seine Erklärung klar ist!

Ich würde auch seine Antwort erweitern, dass Sie mehrere PHP-Versionen gleichzeitig ausführen können ppa:ondrej/php.

Dann müssen Sie die PHP-Version nicht ändern. Rufen Sie den Komponisten einfach so auf: /usr/bin/php7.2 /usr/local/bin/composer install


0

Entschuldigung für das "Diggy Up", aber ich habe dieses Problem nur mit einer Symfony3.8-Projektveröffentlichung auf Shared Hosting (PHP 7.3.18) gefördert ...

Ich habe dieses Problem gelöst, indem ich das PHP-Speicherlimit in den Befehlszeilenoptionen festgelegt habe.

php -dmemory_limit=-1 /path/to/the/executable


-1

Wenn Ihr Code aus irgendeinem Grund nicht aktualisiert werden kann, ändern Sie einfach Ihren switch ... continuein switch ... break, da dies in früheren Versionen von PHP so funktionieren sollte.


-4

Um diesen Fehler zu beseitigen, müssen Sie in die Datei wp-config gehen und diese Codezeilen hinzufügen

define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);

2
Ihre Antwort ist relativ zu WordPress. Die Frage bezieht sich auf die Symfonie.
Asone
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.