The app.root parametrul a fost adăugat în Drupal 9 pentru a înlocui app.root serviciu. Dacă utilizați Drupal 8, această eroare ar putea fi cauzată de:
- Un modul care spune că este compatibil cu Drupal 8 și Drupal 9, al căror cod accesează app.root parametru container atunci când rulează pe Drupal 8
- Alt cod care încearcă să acceseze app.root parametru container atunci când rulează pe Drupal 8
Acest lucru se poate întâmpla deoarece:
- Unul dintre argumentele pentru un serviciu este
„%app.root%”
(care necesită parametrul container) în loc de „@app.root”
(care necesită serviciul care există în Drupal 8.x)
- Există un cod care folosește
$container->getParameter('app.root')
în loc de $container->get('app.root')
- Există un cod care verifică dacă se utilizează app.root parametrul containerului sau app.root serviciu, dar nu reușește să îl folosească pe cel disponibil
Pentru a înțelege ce cod provoacă eroarea, ar trebui să fie suficient să căutați %app.root% sau ->getParameter('app.root'). Căutare de app.root nu este suficient, deoarece ar returna orice linie care folosește corect app.root serviciu.
[Symfony 5] Înlocuiți serviciile de șir app.root și site.path cu parametrii containerului au fost create a fost creat pe 13 august 2019 și marcat ca remediat pe 23 decembrie 2020. (Corectarea a fost efectuată pe Drupal 9.x pe 5 martie 2020.)
Consola Drupal 1.9.4 (lansată pe 11 noiembrie 2019) nu trebuie să conțină cod care accesează app.root parametru container, deoarece nucleul Drupal nici măcar nu avea acel parametru container când a fost lansată Drupal Console 1.9.4.