Попередження: перемикач націлювання «продовжити» еквівалентно «перерві». Ви мали на увазі використовувати “продовжити 2”? [зачинено]


83

У мене є php7.3 і symfony2.8 Коли я намагаюся створити класи за допомогою консолі, я отримую цю помилку:

[Symfony \ Component \ Debug \ Exception \ ContextErrorException] Попередження: перемикач націлювання "продовжити" еквівалентно "перерві". Ви мали на увазі використовувати "продовжити 2"?


3
Введіть свій код у запитання. (І редактору, будь ласка, не додайте до запитання, про яке OP фактично не сказав, настільки корисним, наскільки це може здатися. Це вкладає слова в рот і стає заплутаним.)
Тайлер Ропер

Спробуйте "оновлення композитора". Може допомогти чи не допомогти. Попередження є результатом нещодавнього "виправлення" php і вимагає невеликого оновлення для виправлення. Ви також можете натрапити на попередження count () null. @trincot - І так, попередження чітке. Проблема полягає в тому, що його генерує стороння бібліотека. У дуже заплутаному блоці коду.
Cerad

Ви перевірили, чи відповідає ваш сервер мінімальним вимогам? Поточна версія Symfony 4.2.3, тому дуже малоймовірно, що 2.8 підтримує PHP / 7.3, який вийшов менше 2 місяців тому.
Альваро Гонсалес,

Я щойно перевірив, що, згідно з Packagist , Symfony / 2.8.49 був випущений того ж дня, що і PHP / 7.3. Тож, можливо, ця версія призначена для вирішення питань сумісності (я насправді не знаю).
Альваро Гонсалес

Відповіді:


127

У мене така сама проблема, і у мене також є ця помилка, але в моєму випадку ця помилка відображається, коли я намагаюся запустити composer installабо composer update.

і я вирішую цю проблему, запустивши composer self-update. це працює над моїм проектом.


Якщо це не вдається (як для мене), спробуйте відповідь від Avnish alok на це питання. Версія композитора, встановлена ​​apt, є старою.
Тревор

Це правильна відповідь, хоча вона могла б використовувати довідкову інформацію про те, що "Ваша версія для композитора застаріла, оновіть її". Це допомогло б людям, як Тревор вище, зрозуміти, що вони йдуть правильним шляхом, навіть якщо самооновлення не вдається.
Matt Rabe

Для мене правильним рішенням було просто запустити composer updateпід час інсталяції помилку, хоча зовсім краще тримати композитора в курсі, просто кажучи тим, хто повинен подумати, які наслідки можуть призвести це до інших проектів на тому ж сервері; )
Джон Сміт

49

Можливо, ваш композитор застарів. Нижче наведені кроки, щоб позбутися помилки.

Примітка. Для професіоналів Windows потрібні та виконані лише кроки 2 та 3.


Крок 1

Видалити композитора:

sudo apt-get remove composer

Крок 2

Завантажити композитора:

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

Крок 3

Запустіть файл composer-setup.php

php composer-setup.php

Крок 4

Нарешті перемістіть композитора:

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


Ваш композитор повинен бути оновлений зараз. Щоб перевірити його, виконайте команду:

композитор

Ви можете видалити завантажений композитор за допомогою команди php

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

1
На мою думку, це не пов'язано з композитором, а проблема з php 7.3
Габріеле Ф.

1
Для глобального використання можна спробувати псевдонім composer = '/ usr / local / bin / composer'
Едуард Брокан

30

На мою думку, проблема полягає у зворотній несумісності з PHP 7.3 для continueключового слова в операторах Switch. Погляньте на розділ "Попередження щодо проблем із перемиканням націлювання" у розділі " Зворотно несумісні зміни" .

Я зіткнувся з тією ж проблемою з Symfony 3.3 за допомогою PHP 7.3, і зниження до PHP 7.2 вирішило попередження.


21

Я перейшов на PHP 7.3, і жоден із них не працював у мене до мого використання,

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

Це просто залежність від версії. PHP 7.3

і оновлення композитора працювали як шарм!



9

Ви намагалися зробити самооновлення композитора?

composer self-update

або

composer install


це дає мені помилкуCommand "self-update" is not defined
mrid

Ви встановили композитор? ще завантажте та встановіть композитор зі свого сайту тут getcomposer.org/download
kheengz

так, це було встановлено. але я думаю, що з цим могла бути якась проблема, він перестав встановлювати компоненти. я його очистив і встановив знову, і він працює :)
mrid

6

Windows 10 Professional

PHP 7.3.1

Я запустив ці команди, щоб вирішити проблему на робочому столі

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

5

У моєму випадку php було оновлено з php7.2.22 до php7.3.9.

тому довелося знизити версію cli php, оскільки композитор запущений на терміналі

//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

додаткова інформація, якщо ви використовуєте apache, пам’ятайте, щоб і cli, і apache залишалися в одній версії. у моєму випадку мені довелося знизити рівень

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

Це буде працювати з іншими версіями. так що сміливо перемикайтеся між версіями. просто замініть номери версій відповідним чином


1
У мене була та сама проблема. Проблема в тому, що ми все ще використовуємо стару версію Symfony (2.8), яка не працює належним чином на PHP 7.3.
Девід Баукум

5

Я змінив продовжувати продовжувати 2 на рядок 1579 у shortcodeComon.php, і це вирішило мою проблему

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

           continue;

    }

Перейти:

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

             continue 2;

   }



2

здається, це проблема з php7.3.

Якщо у вас встановлена ​​інша версія у вашій системі, ви можете використовувати це:

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

це спрацювало для мене


2

після оновлення мого xampp з 7.2.0 до 7.3.0 я стикаюся з цією проблемою, але після видалення composer.exe та встановлення останнього composer.exe з composer.org, ніж проблема вирішена


2

Я думаю, що це проблема версії, вам просто потрібно видалити стару версію композитора, а потім виконати нову інсталяцію нової версії.

 apt remove composer

та виконайте кроки:

  1. завантажте композитора з його офіційного веб-сайту, використовуючи наступну команду.
 wget https://getcomposer.org/download/1.6.3/composer.phar
  1. Перш ніж продовжувати встановлення, перед перестановкою перейменуйте та зробіть його виконуваним файлом.
  mv composer.phar composer
  chmod +x composer
  1. Тепер встановіть пакет, скориставшись наступною командою.
 ./composer
  1. Композитор успішно встановлений зараз, зробіть доступ до нього глобально за допомогою наступної команди. для Ubuntu 16
 mv composer /usr/bin/

для Ubuntu 18

 mv composer /usr/local/bin/

2

У мене така сама проблема, коли я запускаю, composer install
я її вирішую, виконуючи в каталозі композитора, php composer.phar self-updateа потім у каталозі мого проектуcomposer update


1

На debian 9 php7.3 відповідь, вставлена ​​нижче, працювала чудово.


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

1

Мені довелося оновити доктрину / орму:

composer update doctrine/orm

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

0

У мене була та сама проблема. але виправлено, завантаживши композитор і встановивши його з нуля.


0

Відповідь @ aimme слід прийняти!

Я продовжував би його відповідь коментарем @ david-baucum, оскільки його пояснення чітке!

Я також поширюю його відповідь про те, що ви можете запускати кілька версій PHP одночасно, використовуючи ppa:ondrej/php.

Тоді вам не потрібно змінювати версію PHP, просто зателефонуйте композитору так: /usr/bin/php7.2 /usr/local/bin/composer install


0

Вибачте за "копання", але я щойно запропонував цю проблему розгортанням проекту symfony3.8 на спільному хостингу (php 7.3.18) ...

Я вирішив цю проблему, встановивши обмеження пам’яті php у параметрах командного рядка, наприклад:

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


-1

Якщо ваш код не може бути оновлений з якоїсь причини, просто змініть його switch ... continueна switch ... break, як і в попередніх версіях PHP, він мав працювати таким чином.


-4

Щоб усунути цю помилку, вам потрібно перейти до файлу wp-config і додати ці рядки коду

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

2
Ваша відповідь щодо wordpress. Питання стосується symfony.
Asone
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.