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.


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.