Das Anzeigen von Ebenenmustern, in denen Sie nur das präsentieren, was Ihnen gegeben wurde, ist in Ordnung, aber woher wissen Sie, was verfügbar ist? Gibt es in TWIG die Funktion "Alle definierten Variablen auflisten"? Gibt es eine Möglichkeit, eine Variable zu sichern?
Die Lösung, die ich bei der Suche gefunden habe, bestand darin, eine Funktion zu definieren, in der ich meine vorhandenen PHP-Debug-Tools durch Einfügen einer Funktion verwenden kann. Alle Verweise, die ich darauf gefunden habe, enthalten diese schönen zwei Codezeilen, aber nirgendwo ist angegeben, wohin platziere sie. Aufgrund der Tatsache, dass eine $ loader- Variable definiert werden muss, habe ich /app/config/autoload.php ausprobiert, aber der $ loader dort war die falsche Art. Wo platziere ich den PHP-Code zum Hinzufügen einer Zweigfunktion?
{{ dump() }}
alle Variablen speichere, wird eine leere Seite zurückgegeben. Gibt es eine andere Möglichkeit, eine Variable zu sichern?dump
, ist dies offensichtlichdump
nicht das Problem. Ich würde vorschlagen, eine neue Frage zu stellen, wenn Sie es nicht anders herausfinden können.Sie können das
debug
Tag verwenden, das hier dokumentiert ist .Bearbeiten: Ab Twig 1.5 ist dies veraltet und wurde durch die neue
dump
Funktion ersetzt (Hinweis, es ist jetzt eine Funktion und kein Tag mehr). Siehe auch: Die oben akzeptierte Antwort.quelle
Unknown tag name "debug"
, erweitern Sie Ihre Konfiguration (entweder globalconfig.yml
oderconfig_dev.yml
) wie hier beschrieben: github.com/symfony/symfony-docs/issues/455#issuecomment-1884861Also habe ich es zum Laufen gebracht, teilweise ein bisschen hackisch:
twig: debug: 1
einapp/config/config.yml
Fügen Sie dies zu config_dev.yml hinzu
sudo rm -fr app/cache/dev
print_r()
, ich öffnetevendor/twig-extensions/lib/Twig/Extensions/Node/Debug.php
und geändert ,print_r(
umd(
PS. Ich würde immer noch gerne wissen, wie / wo ich die $ twig-Umgebung nutzen kann, um Filter und Erweiterungen hinzuzufügen.
quelle
twig: debug: 1
da diese Informationen von der Umgebung Ihres Frontcontrollers übernommen werden. Andernfalls könnten Sie unbeabsichtigt Debug-Informationen in Ihrer Produktumgebung ausgeben. Solange Sie in der Entwicklungsumgebung arbeiten, ist diese standardmäßig aktiviert und in Ihrer Produktumgebung deaktiviert.Wenn Sie Twig in Ihrer Anwendung als Komponente verwenden , können Sie Folgendes tun:
Dann in Ihren Vorlagen:
quelle
$twig = new Twig_Environment($loader, array(...
?Wenn Sie Twig als eigenständige Komponente verwenden, finden Sie hier ein Beispiel für das Aktivieren des Debuggens, da es unwahrscheinlich ist, dass die Dump- Funktion (Variable) sofort funktioniert
Eigenständige
Dies wurde über den von icode4food bereitgestellten Link gefunden
Silex
quelle
Alle benutzerdefinierten Variablen sichern:
Sie können mein Plugin verwenden, das das für Sie erledigt (und die Ausgabe gut formatiert):
Twig Dump Bar
quelle
{{ dump() }}
funktioniert bei mir nichtPHP
Drosseln. Nistniveau zu tief, denke ich.Alles, was Sie wirklich für
debug
Twig-Vorlagen benötigen, wenn Sie eine verwenden,debugger
ist eine Erweiterung wie diese .Dann müssen Sie nur noch einen Haltepunkt festlegen und anrufen,
{{ inspect() }}
wo immer Sie ihn benötigen. Sie erhalten die gleichen Informationen wie mit,{{ dump() }}
jedoch in Ihrem Debugger.quelle
Da Symfony> = 2.6 ist, gibt es eine nette VarDumper- Komponente, die jedoch von Twigs
dump()
Funktion nicht verwendet wird .Um es zu überschreiben, können wir eine Erweiterung erstellen:
Vergessen Sie in der folgenden Implementierung nicht, Namespaces zu ersetzen.
Fuz/AppBundle/Resources/config/services.yml
Fuz/AppBundle/Twig/Extension/DebugExtension.php
quelle
Das vollständige Rezept hier zum schnelleren Nachschlagen (beachten Sie, dass alle Schritte obligatorisch sind):
1) Übergeben Sie beim Instanziieren von Twig die Debug-Option
2) Fügen Sie die Debug-Erweiterung hinzu
3) Verwenden Sie es wie @Hazarapet Tunanyan darauf hingewiesen
oder
oder
quelle
Zum Debuggen von Twig-Vorlagen können Sie die Debug-Anweisung verwenden .
Dort können Sie die Debug-Einstellung explizit festlegen.
quelle
Unknown tag name "debug"
Fehler zu beseitigen .Sie können bearbeiten
und ändern Sie die
the var_dump()
Funktionen in\Doctrine\Common\Util\Debug::dump()
quelle
Da die meisten guten PHP-Programmierer XDebug gerne verwenden, um den laufenden Code zu durchlaufen und zu beobachten, wie sich Variablen in Echtzeit ändern,
dump()
fühlt sich die Verwendung wie ein Schritt zurück in die schlechten alten Zeiten an.Deshalb habe ich eine Twig Debug-Erweiterung erstellt und auf Github gestellt.
https://github.com/delboy1978uk/twig-debug
composer require delboy1978uk/twig-debug
Fügen Sie dann die Erweiterung hinzu. Wenn Sie Symfony nicht verwenden, gehen Sie wie folgt vor:
Wenn ja, so in Ihrer Dienste YAML-Konfiguration:
Einmal registriert, können Sie dies jetzt überall in einer Zweigvorlage tun:
Jetzt können Sie XDebug verwenden, die Ausführung wird angehalten und Sie können alle Eigenschaften sowohl des Kontexts als auch der Umgebung sehen.
Habe Spaß! :-D
quelle
Sie können die Dump- Funktion verwenden und so drucken
Aber es gibt auch eine nette Sache: Wenn Sie kein Argument für die Dump-Funktion festlegen, werden alle verfügbaren Variablen gedruckt , z
quelle
Wenn Sie sich in einer Umgebung befinden, in der Sie die
dump
Funktion nicht verwenden können (z. B. opencart), können Sie Folgendes versuchen:quelle