web-dev-qa-db-ja.com

Drupal 8.6.10の「<function>の宣言は<interface>と互換性がある必要があります」

土曜日まで、機能するDrupal 8.6.xインスタンスがありました。

composer update

およびDrupal 8.6.10がインストールされました。それ以降、エラーログに次のように記録されます。

Drupal\Core\Template\TwigTransTokenParser :: parse(Twig_Token $ token)の宣言は、Twig\TokenParser\TokenParserInterface :: parse(Twig\Token $ token)と互換性がある必要があります

そしてDrushは失敗します

Robo\Robo :: configureContainer()は、Robo\Config\Configのインスタンスである必要があります。指定されたDrush\Config\DrushConfigのインスタンス

私はPHP 7.2をUbuntu 18.04で使用しています。

Drupal 8.6.10を完全に再インストールしたところ、同じことが発生しました。8.6.10を8.6.9および8.6.0に置き換えようとしましたが、それでもこれらのエラーが発生します。 Javaの場合、インターフェイスとクラスが異なるバージョンのコンパイラでコンパイルされたのではないかと思いますが、PHPどこから始めればよいかわかりません。これらのエラー私にはコアにあるようです:すべてのコードはmodules/xxxの下にあります。

ヒントはありますか?

スティーブ

6
Stephen Winnall

これは、この新しいTwigバージョン1.38.0のグローバルな問題です。

composer require twig/twig:1.37.1を使用してバージョンをダウングレードすることで、一時的に修正することができます

この問題 をフォローして、Twigバージョンを再度更新できる時期を知ることができます。