dump () funktioniert in Drupal 8 nicht (leere Seite, Debbugging ist aktiviert)

9

Ich möchte dump()in meiner .twigVorlage (innerhalb eines benutzerdefinierten Themas) verwenden.

Das Problem ist, wenn ich {{ dump() }}die Seite platziere, ist sie nur leer.

Ich habe gehabt:

  1. Setzen Sie twig.confing debug: trueein services.yml.
  2. Cache geleert.

Der Moment, in dem ich {{ dump() }}alles entferne, funktioniert.

Nach stundenlangem Googeln habe ich hier einige Informationen über Rätsel $settings['twig_debug'] = TRUE; gefunden (ich habe nicht einmal eine solche Zeile in meiner Datei, aber das Hinzufügen ändert nichts) und $twig = new Twig_Environment($loader, array(...(wo finde ich sie überhaupt?).

Ich arbeite an einer sauberen und frischen Drupal 8-Installation. Beim Debbuing (Schritt 1) ​​werden Kommentare im Quellcode eingefügt (wie es sollte), aber dump()einmal verwendet und alles, was Sie sehen, ist nur eine leere Seite.

PolGraphic
quelle
Haben Sie das Drupal-Protokoll überprüft?
Eyal
Es liegt wahrscheinlich ein PHP-Fehler im Zusammenhang mit dem leeren Bildschirm vor. Soweit ich weiß, möchten Sie jetzt lieber mit Kint als mit dump () arbeiten. Siehe drupaleasy.com/quicktips/…
Cilefen
1
Ein leerer Bildschirm bedeutet meistens einen Speicherfehler, und da dump () alle Variablen ausgibt, könnte dies ein Hinweis sein
Paul Bönisch

Antworten:

11

Ich stimme dem Kommentar zu der Frage zu: Es scheint, dass Sie ein Problem mit nicht genügend Speicher haben . Überprüfen Sie das Fehlerprotokoll für den Server.

Ich hatte das gleiche Problem mit dump()und kint()in einer Implementierung von template_preprocess_views_view_field(), während ich versuchte, den Inhalt einer Zeile auf einer sauberen und frischen Drupal 8-Installation auszugeben. Ich habe eine Problemumgehung gefunden kint(), die das Speicherproblem vorübergehend zu beheben scheint. Fügen Sie die folgenden Einstellungen in die Datei config.default.php für das Kint-Modul ein.

/** @var int max array/object levels to go deep, if zero no limits are applied */
$_kintSettings['maxLevels'] = 4;

Nehmen Sie es als Hinweis: Drucken Sie eine bestimmte Variable, nicht das gesamte Array von Variablen.

Oana Hulpoi
quelle
Es ist auch möglich, nur die variablen Schlüssel zu drucken (obwohl ich vergessen habe, wie).
Eyal
Vielen Dank. Nicht genügend Speicher war das Problem. Gibt es maxLevelsEinstellungen für dump()(etwas $_kintSettings, für das Sie vorgesehen haben kint())?
PolGraphic
1
@Eyal Ich denke, Sie haben darüber nachgedachtdump(_context|keys)
PolGraphic
War das nicht Aber wenn es funktioniert, ist es auch in Ordnung.
Eyal
dump()wird verwendet, $output = Variable::export($input)um das Variablenarray auszugeben. Es scheint, dass es keine Möglichkeit gibt, festzulegen, wie viele Ebenen tief in das Array eindringen sollen.
Oana Hulpoi