Leere Ausgabe von dump () in Symfony CLI

8

Ich erstelle ein einfaches Symfony-Shell Skript, um meine Symfony App im interaktiven Modus zu testen:

%Vor%

Später, PHP interaktiven Modus zu öffnen und einschließlich der vorherigen Skript kann ich einige Aufgaben schnell:

%Vor%

Das Problem ist, dass die Funktion dump() nichts anzeigt . Ich erwartete eine farbige Befehlszeilenausgabe, aber ich probierte dies mit echo und var_dump() und zeigte mir die erwarteten Werte, aber für Objekte ist hauptsächlich die Ausgabe dicht und unlesbar. In dieser Richtung lautet die VarDumper-Komponentendokumentation :

  

Standardmäßig werden das Ausgabeformat und das Ziel basierend auf Ihrem aktuellen PHP SAPI [...]     * In der Kommandozeile (CLI SAPI) wird die Ausgabe auf STDOUT geschrieben. [...]

Das funktioniert standardmäßig nicht und ich bin mir sicher, dass PHP_SAPI cli ist. Außerdem habe ich einen Workaround gefunden , der debug.dump_destination auf php://stderr setzt, ABER :

%Vor%

Ich mag diese Ausgabe nicht und ändere die Konfiguration nicht nur für diesen Zweck.

Irgendwelche Gedanken, was mit der Funktion dump() passiert und warum sie nichts zeigt? Danke.

    
yceruto 10.05.2017, 15:06
quelle

1 Antwort

3
___ tag123symfony ___ Symfony ist ein Open-Source-PHP-Webentwicklungsframework für PHP 5.5.9+, das sich auf einfache und schnelle Entwicklungszyklen konzentriert und hochmoderne Designmuster und Programmierphilosophien beinhaltet. Symfony sollte nicht mit Symphony CMS verwechselt werden. Dieses Tag sollte nicht für Fragen zu Symfony 1.x verwendet werden. Bitte verwenden Sie stattdessen das Symfony1-Tag. ___ tag123php ___ PHP ist eine weit verbreitete, dynamische, objektorientierte und interpretierte Skriptsprache, die primär für die serverseitige Webentwicklung entwickelt wurde. ___ qstnhdr ___ Leere Ausgabe von dump () in Symfony CLI ___ tag123commandlineinterface ___ Die Schnittstelle zu einem Programm, das ausschließlich aus Text besteht (im Gegensatz zu einer GUI oder einer grafischen Benutzeroberfläche). ___ qstntxt ___

Ich erstelle ein einfaches Symfony-Shell Skript, um meine Symfony App im interaktiven Modus zu testen:

%Vor%

Später, PHP interaktiven Modus zu öffnen und einschließlich der vorherigen Skript kann ich einige Aufgaben schnell:

%Vor%

Das Problem ist, dass die Funktion VarDumper nichts anzeigt . Ich erwartete eine farbige Befehlszeilenausgabe, aber ich probierte dies mit null === self::$handler und 'cli' === PHP_SAPI und zeigte mir die erwarteten Werte, aber für Objekte ist hauptsächlich die Ausgabe dicht und unlesbar. In dieser Richtung lautet die VarDumper-Komponentendokumentation :

  

Standardmäßig werden das Ausgabeformat und das Ziel basierend auf Ihrem aktuellen PHP SAPI [...]     * In der Kommandozeile (CLI SAPI) wird die Ausgabe auf STDOUT geschrieben. [...]

Das funktioniert standardmäßig nicht und ich bin mir sicher, dass VarDumper null ist. Außerdem habe ich einen Workaround gefunden , der %code% auf %code% setzt, ABER :

%Vor%

Ich mag diese Ausgabe nicht und ändere die Konfiguration nicht nur für diesen Zweck.

Irgendwelche Gedanken, was mit der Funktion %code% passiert und warum sie nichts zeigt? Danke.

    
___ antwort43903877 ___

Aus irgendeinem Grund sieht es so aus, als ob Sie gerade versuchen, einen bestimmten Handler in %code%

zu injizieren

Daher ist die Bedingung %code% im folgenden Wiedergabefang des Klassencodes immer falsch und daher wird der für %code% erwartete Dumper nicht gesetzt.

%Vor%

Quelle: Symfony / Komponente / VarDumper / VarDumper.php

Nun, wenn Sie das wissen, ist Ihre Lösung so einfach, als setzen Sie den Handler von %code% auf %code%

zurück

Arbeitscode:

%Vor%

Wenn ausgeführt:

%Vor%     
___
b.enoit.be 10.05.2017, 22:50
quelle