Рейтинг:2

«RuntimeException: вы запросили несуществующий параметр app.root»

флаг cn

После очистки кеша получаю это сообщение.

Symfony\Component\DependencyInjection\Exception\RuntimeException: вы запросили несуществующий параметр "app.root". в Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue() (строка 37 файла /var/www/call/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php). Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue() (строка: 60) Symfony\Component\DependencyInjection\Compiler\AbstractRecursivePass->processValue() (строка: 30) Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue() (строка: 39) Symfony\Component\DependencyInjection\Compiler\AbstractRecursivePass->process() (строка: 140) Symfony\Component\DependencyInjection\Compiler\Compiler->compile() (строка: 789) Symfony\Component\DependencyInjection\ContainerBuilder->compile() (строка: 1335) Drupal\Core\DrupalKernel->compileContainer() (строка: 916) Drupal\Core\DrupalKernel->initializeContainer() (строка: 477) Drupal\Core\DrupalKernel->boot() (строка: 707) Drupal\Core\DrupalKernel->handle() (строка: 19)

Есть ли у вас какие-либо идеи о том, как решить эту проблему?

флаг cn
Вторая строка говорит: «Вы запросили несуществующий параметр «app.root». Попробуйте поискать в своей кодовой базе «app.root» и посмотрите, где он вам нужен.
Dragan Petrovic FSD avatar
флаг cn
Все связаны с консолью drupal
флаг cn
Какая версия консоли Drupal? Вы уверены, что версия совместима с 8.9.20?
Dragan Petrovic FSD avatar
флаг cn
"друпал/консоль": "^1.9",
leymannx avatar
флаг ne
Удалите консоль Drupal и повторите попытку.
Dragan Petrovic FSD avatar
флаг cn
та же проблема, та же ошибка
Рейтинг:3
флаг cn

Эта ошибка вызвана кодом, использующим %app.root% как параметр в Drupal 8.

Например:

   cache.backend.apcu:
     класс: Drupal\Core\Cache\ApcuBackendFactory
     аргументы: ['%app.root%', '%site.path%', '@cache_tags.invalidator.checksum']

Это код Drupal 9, который не работает в Drupal 8.

Аргумент службы @app.root с другой стороны, не вызывает эту ошибку. Вы найдете его в консоли Drupal или другом коде Drupal 8. Он устарел в Drupal 9, но все еще работает, пока вы не обновите его до Drupal 10. Тогда будет эта ошибка Ошибки "Несуществующий сервис" после очистки кеша

Посмотреть запись об изменении https://www.drupal.org/node/3080612.

Рейтинг:2
флаг us

app.root параметр был добавлен в Drupal 9 для замены app.root оказание услуг. Если вы используете Drupal 8, эта ошибка может быть вызвана:

  • Модуль, в котором говорится, что он совместим с Drupal 8 и Drupal 9, чей код обращается к app.root параметр контейнера, когда он работает на Drupal 8
  • Другой код, который пытается получить доступ к app.root параметр контейнера, когда он работает на Drupal 8

Это могло произойти, потому что:

  • Одним из аргументов в пользу сервиса является '%app.root%' (для которого требуется параметр контейнера) вместо '@app.root' (для чего требуется служба, существующая в Drupal 8.x)
  • Есть код, который использует $container->getParameter('app.root') вместо $container->получить('app.root')
  • Есть код, который проверяет, использовать ли app.root параметр контейнера или app.root сервис, но он не может использовать доступный

Чтобы понять, какой код вызывает ошибку, достаточно поискать %app.root% или же ->getParameter('app.root'). Searching for app.root недостаточно, так как он вернет любую строку, которая правильно использует app.root оказание услуг.

[Symfony 5] Заменены строковые службы app.root и site.path параметрами контейнера. был создан 13 августа 2019 г. и помечен как исправленный 23 декабря 2020 г. (исправление было зафиксировано для Drupal 9.x 5 марта 2020 г.)
Консоль Drupal 1.9.4 (выпущена 11 ноября 2019 г.) не должна содержать код, который обращается к app.root container, так как ядро ​​Drupal даже не имело этого параметра container, когда была выпущена Drupal Console 1.9.4.

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

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