У меня есть php7.3 и symfony2.8. Когда я пытаюсь создать классы с помощью консоли, я получаю эту ошибку:
[Symfony\Component\Debug\Exception\ContextErrorException]Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?
Попробуйте "обновление композитора". Может помочь, а может и не помочь. Предупреждение является результатом недавнего «исправления» php и требует небольшого обновления для исправления. Вы также можете столкнуться с нулевым предупреждением count (). @trincot - И да, предупреждение ясное. Проблема в том, что он создается сторонней библиотекой. В очень запутанном блоке кода.
Вы проверили, соответствует ли ваш сервер минимальным требованиям? Текущая версия Symfony - 4.2.3, поэтому маловероятно, что 2.8 поддерживает PHP / 7.3, выпущенный менее двух месяцев назад.
Я только что проверил, что, согласно Упаковщик, Symfony / 2.8.49 был выпущен в тот же день, что и PHP / 7.3. Так что, возможно, эта версия предназначена для решения проблем совместимости (я действительно не знаю).






У меня такая же проблема и эта ошибка, но в моем случае эта ошибка появляется, когда я пытаюсь запустить composer install или composer update.
и я решаю эту проблему, запустив composer self-update. это работает над моим проектом.
Если это не удается (как у меня), попробуйте ответить на этот вопрос от Avnish alok. Версия композитора, установленная apt, устарела.
Это правильный ответ, хотя он может использовать справочную информацию о том, что «Ваша версия композитора слишком старая, обновите ее». Это поможет людям, подобным Тревору, описанному выше, понять, что они на правильном пути, даже если самообновление не удается.
Для меня правильным решением было просто запустить composer update во время установки, когда произошла ошибка, хотя лучше поддерживать композитор в актуальном состоянии, просто говоря для тех, кто должен подумать о том, какие последствия могут принести это в другие проекты на том же сервере. ;)
На мой взгляд, проблема связана с обратной несовместимостью с PHP 7.3 для ключевого слова continue в операторах Switch. Взгляните на раздел «Предупреждение о проблемах с переключением на продолжение таргетинга» в Обратно несовместимые изменения.
Я столкнулся с той же проблемой с Symfony 3.3 с использованием PHP 7.3, и переход на PHP 7.2 разрешил предупреждение.
Ага - это правильный ответ.
Или загрузите composer.phar с сайта: "https://getcomposer.org/download/" (загрузка вручную) и используйте команду:
php composer.phar require your/package
Windows 10 Профессиональная
PHP 7.3.1
Я выполнил эти команды, чтобы исправить проблему на моем рабочем столе
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
Я обновился до 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
и обновление композитора сработало как шарм!
Возможно, ваш композитор уже устарел. Ниже приведены шаги по устранению ошибки.
Note: For Windows professionals, Only Step2 and Step3 is needed and done.
Шаг 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
Ваш композитор должен быть обновлен. Чтобы проверить это, запустите команду:
composer
Вы можете удалить загруженный композитор с помощью команды php
php -r "unlink('composer-setup.php');"
На мой взгляд, это не связано с композитором, это проблема с php 7.3.
Для глобального использования можно попробовать псевдоним composer = '/ usr / local / bin / composer'
В моем случае 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
Это будет работать с другими версиями. так что не стесняйтесь переключаться между версиями. просто замените номера версий соответствующим образом
У меня такая же проблема. Проблема в том, что мы все еще используем более старую версию Symfony (2.8), которая не работает должным образом на PHP 7.3.
On debian 9 php7.3 the answer above pasted below worked perfectly.
sudo wget https://getcomposer.org/download/1.8.0/composer.phar -O /usr/local/bin/composer && sudo chmod 755 /usr/local/bin/composer
Я была такая же проблема. но исправил это, загрузив композитор и установив его с нуля.
это похоже на проблему с php7.3, я думаю.
Если в вашей системе установлена другая версия, вы можете использовать это:
php7.1 /usr/bin/composer update // or wherever your composer is
это сработало для меня
Я изменил continue to continue 2 в строке 1579 в shortcodeComon.php, и это устранило мою проблему.
if (trim($custom_link[$i]) == ""){
continue;
}
Измените на:
if (trim($custom_link[$i]) == ""){
continue 2;
}
грубый, но эффективный ..
Хорошее решение. Очень ценю. Я уже проголосовал за этот ответ
Вы пробовали сделать самообновление композитора?
composer self-update
или
composer install
это дает мне ошибку Command "self-update" is not defined
Вы установили композитор? еще скачайте и установите композитор с их сайта здесь getcomposer.org/download
да, он был установлен. но я думаю, что с этим могла быть какая-то проблема, он перестал устанавливать компоненты. Я очистил его и снова установил, и он работает :)
Если по какой-то причине ваш код не может быть обновлен, просто замените switch ... continue на switch ... break, так как в предыдущих версиях PHP это должно было работать именно так.
Чтобы устранить эту ошибку, вам нужно перейти в файл wp-config и добавить эти строки кода
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);
Ваш ответ относится к wordpress. Вопрос относительно symfony.
после обновления моего xampp с 7.2.0 до 7.3.0 я столкнулся с этой проблемой, но после unistall composer.exe и установки последней версии composer.exe с composer.org проблема решена
Мне пришлось обновить доктрину / орму:
composer update doctrine/orm
Updating doctrine/orm (v2.5.13 => v2.6.6)
Я думаю, что это проблема версии, вам просто нужно удалить старую версию composer, а затем выполнить новую установку ее новой версии.
apt remove composer
и следуйте инструкциям:
wget https://getcomposer.org/download/1.6.3/composer.phar
mv composer.phar composer
chmod +x composer
./composer
mv composer /usr/bin/
для Ubuntu 18
mv composer /usr/local/bin/
Ответ @ aimme следует принять!
Я бы расширил его ответ комментарием @david-baucum, потому что его объяснение ясно!
Я бы также расширил его ответ, что вы можете запускать несколько версий PHP одновременно, используя ppa:ondrej/php.
Тогда вам не нужно менять версию PHP, просто вызовите композитор следующим образом:
/usr/bin/php7.2 /usr/local/bin/composer install
У меня такая же проблема при запуске composer install
Я решаю это, делая в каталоге композитора php composer.phar self-update, а затем в каталоге моего проекта composer update
Извините за "копание", но я только что столкнулся с этой проблемой из-за отказа от проекта symfony3.8 на виртуальном хостинге (php 7.3.18) ...
Я решил эту проблему, установив ограничение памяти php в параметрах командной строки, примерно так:
php -dmemory_limit=-1 /path/to/the/executable
Пожалуйста, укажите свой код в вопросе. (И к редактору, пожалуйста, не добавляйте к вопросу, который OP на самом деле не сказал, настолько полезным, насколько это может показаться. Это кладет слова им в рот и сбивает их с толку.)