Рейтинг:1

Неустранимая ошибка PHP: Uncaught ArgumentCountError при запуске Drush

флаг jp

После того, как я обновил свой сайт до Drupal 8.9.16 и Drush до 10.5.0, я получаю следующую ошибку Неустранимая ошибка PHP: Uncaught ArgumentCountError: слишком мало аргументов для работы при выполнении любой команды Drush. Это происходит только на моем удаленном сайте, а не на моем локальном сайте.

Сайт все еще работает нормально, поэтому я смог очистить кеш и обновить базу данных из серверной части Drupal. Я надеялся, что это решит проблему, но этого не произошло. Я также искал решение, но ни одна из тем, которые я нашел, не дала мне правильного решения.

Надеюсь, кто-то из вас лучше понимает, что означает эта ошибка, и может помочь мне исправить ее.

Полное сообщение об ошибке:

Неустранимая ошибка PHP: Uncaught ArgumentCountError: слишком мало аргументов для функции Drush\Application::configureAndRegisterCommands(), 3 передано в /home/user/domains/domain.com/public_html/vendor/drush/drush/src/Runtime/Runtime.php в строке 113 и ровно 4 ожидается в /home/user/domains/domain.com/vendor/drush/drush/src/Application.php:313
Трассировки стека:
#0 /home/user/domains/domain.com/public_html/vendor/drush/drush/src/Runtime/Runtime.php(113): Drush\Application->configureAndRegisterCommands(Object(Drush\Symfony\DrushArgvInput), Object( Symfony\Component\Console\Output\ConsoleOutput), массив)
#1 /home/user/domains/domain.com/public_html/vendor/drush/drush/src/Runtime/Runtime.php(49): Drush\Runtime\Runtime->doRun(Array, Object(Symfony\Component\Console \выход\консольвыход))
#2 /home/user/domains/domain.com/public_html/vendor/drush/drush/drush.php(72): Drush\Runtime\Runtime->run(массив)
#3 /home/user/domains/domain.com/public_html/vendor/drush/drush/drush(4): require('/home/deb в /home/user/domains/domain.com/vendor/drush/drush /src/Application.php в строке 313
Неустранимая ошибка: Uncaught ArgumentCountError: слишком мало аргументов для функции Drush\Application::configureAndRegisterCommands(), 3 передано в /home/user/domains/domain.com/public_html/vendor/drush/drush/src/Runtime/Runtime.php на строка 113 и ровно 4 ожидается в /home/user/domains/domain.com/vendor/drush/drush/src/Application.php:313
Трассировки стека:
#0 /home/user/domains/domain.com/public_html/vendor/drush/drush/src/Runtime/Runtime.php(113): Drush\Application->configureAndRegisterCommands(Object(Drush\Symfony\DrushArgvInput), Object( Symfony\Component\Console\Output\ConsoleOutput), массив)
#1 /home/user/domains/domain.com/public_html/vendor/drush/drush/src/Runtime/Runtime.php(49): Drush\Runtime\Runtime->doRun(Array, Object(Symfony\Component\Console \выход\консольвыход))
#2 /home/user/domains/domain.com/public_html/vendor/drush/drush/drush.php(72): Drush\Runtime\Runtime->run(массив)
#3 /home/user/domains/domain.com/public_html/vendor/drush/drush/drush(4): require('/home/deb в /home/user/domains/domain.com/vendor/drush/drush /src/Application.php в строке 313
Рейтинг:0
флаг cg

У меня была такая же проблема раньше и это помог мне.

Drush 10 изменил некоторые определения своих сервисов, и перед обновлением композитора контейнер DI Drupal был предварительно кэширован. Следующий вызов drush привел к ошибке создания службы, поскольку в кэшированном контейнере было устаревшее определение службы.

Решение состоит в том, чтобы очистить таблицу cache_container (или другое место, где хранится кеш контейнера), однако, как было сказано, это приносит некоторый дискомфорт, потому что перед использованием drush, развернутого где-то, вы должны позаботиться об очистке этого кеша автоматическим способом. И это не может быть само по себе. Это не может быть что-то вроде drush sqlq "обрезать таблицу cache_container" или же drush sql-подключение и SQL-запрос.

надеюсь работать на вас тоже.

Joost avatar
флаг jp
Да, я нашел эту тему. И я обрезал таблицу с помощью phpmyadmin, но это не решило проблему. Или я неправильно понял, что я должен сделать, чтобы решить эту проблему?
Yuseferi avatar
флаг cg
@Джост. какую версию драша вы используете? а драш по правильному пути запускаешь? `какой `drush статус` возвращается к вам?
Joost avatar
флаг jp
Привет, я использую Drush 10.5.0, и да, я нахожусь в нужной папке при запуске drush. Статус Drush также возвращает ошибку
hotwebmatter avatar
флаг nr
@Joost ты решил проблему? Очистка кешей и усечение таблиц в моем случае также не сработали, но я поделился другим подходом, который решил проблему для меня.
Yuseferi avatar
флаг cg
@hotwebmatter зачем минусовать, хотя паре это помогает?
hotwebmatter avatar
флаг nr
Не знаю, почему кто-то проголосовал за это. Это был не я; на самом деле, я проголосовал за это!
Рейтинг:0
флаг nr

У меня как раз была именно эта проблема. В моем случае это было вызвано дублированием продавец каталоги после реорганизации проекта в соответствии с рекомендуемой структурой проекта.

у меня был новый ./продавец/ каталог в корне проекта, но у меня также остался старый ./docroot/поставщик/ каталог в корне документа. (Мой проект размещен на Acquia; вам может понадобиться проверить ./веб/поставщик/ Вместо этого каталог.)

Чтобы решить эту проблему, попробуйте удалить повторяющийся каталог из ./docroot/поставщик/ (или же ./веб/поставщик/), внесение изменений в репозиторий git и развертывание изменения кода в вышестоящей среде.

Это сделало это для меня!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.