web-dev-qa-db-ja.com

{{kint()}}はinstall.phpにつながります

特定のページだけで、代わりに/core/install.phpが表示されます...

twigテンプレートでは、これが何度も私に起こっています。しかし、なぜかは想像できません。誰か他の人がこれを起こしたことがありますか?何が原因なのですか?それだけではありません一部のテンプレートで機能します。私がこれを求めているのは、誰かがそのようなことを尋ねるのを見たことがなく、同僚にも起こったためです。

4

リソースの過負荷が原因です。 kint()は非常に多くのリソースを消費します。たとえば、views-view-files.html.twigテンプレートでkintを呼び出す場合、複数回呼び出されてシステムに過負荷がかかる可能性があります。

ログを確認すると、次のようなエラーが見つかります。

General error: 2006 MySQL server has gone away

DBが過負荷になり、Drupalはインストールがないと考えているため、最終的にインストールページに到達します。

これを回避するのに役立つkint maxLevels変数を制限する3つの方法を次に示します。 maxLevelsを3または4に設​​定します。

1)settings.php

require_once DRUPAL_ROOT . '/modules/contrib/devel/kint/kint/Kint.class.php';
Kint::$maxLevels = 3;

2)/modules/contrib/devel/kint/kint/config.default.phpファイルをconfig.phpに複製し、次の行を変更します。

$_kintSettings['maxLevels'] = 3;

3)前処理関数で、以下を追加します。

kint_require();
Kint::$maxLevels = 3;

キートのみを表示するようにキント出力をフィルタリングすることもできます。

{{ kint(_context|keys) }}

あるいは、少し軽量な Symfony var-dumper を使用します。

composer require symfony/var-dumper

devel設定ページにアクセスし、-Symfony var-dumperVariables Dumperとして設定します。

使用例:

{{ devel_dump() }}
{{ kpr() }}
{{ dpm() }} 
6
featherbelly