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?

Tenderfoot
quelle
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.

Miftah Mizwar
quelle
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');"
Avnish alok
quelle
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.

Jon
quelle
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!

Cosmo Arun
quelle
10

composer self-update composer install

Jetzt sollte es funktionieren

Geben Sie hier die Bildbeschreibung ein

cyber8200
quelle
1
Command "self-update" is not defined.
Oligofren
9

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

composer self-update

oder

composer install

kheengz
quelle
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
John Hanley
quelle
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

aimme
quelle
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;

   }

d212digital
quelle
2

Oder laden Sie composer.phar von der Website " https://getcomposer.org/download/ " (manueller Download) herunter und verwenden Sie den folgenden Befehl:

php composer.phar require your/package
Vitalicus
quelle
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

s.wadhwa
quelle
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

Vijay Kanaujia
quelle
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/
Seck Kader
quelle
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
David Barnes
quelle
1

Ich musste Doktrin / Orm aktualisieren:

composer update doctrine/orm

Updating doctrine/orm (v2.5.13 => v2.6.6)
ivoba
quelle
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

Marnel
quelle
0

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

Ahmed Badawy
quelle
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

Zoltán Süle
quelle
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

J1v3
quelle
-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.

Mike Snus
quelle
-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);
user13044620
quelle
2
Ihre Antwort ist relativ zu WordPress. Die Frage bezieht sich auf die Symfonie.
Asone