Ergebnis 1 bis 13 von 13

Thema: Debugging / Ausgabe von Variablen im Backend

  1. #1
    Contao-Nutzer
    Registriert seit
    17.12.2010.
    Ort
    Schwabenländle
    Beiträge
    120

    Frage Debugging / Ausgabe von Variablen im Backend

    Hallo,
    ich bin ein blutiger Anfänger was Extension-Entwicklung angeht. Ich wollte mir mal eine kleine Erweiterung für Contao 3.1.0 schreiben um zu sehen wie das funktioniert.
    Config, DCA und die dazugehörigen Sprachfiles stehen schon. Nun wollte ich per onsubmit_callback etwas Funktionalität implementieren.

    Jetzt stellt sich mir aber die Frage wie man sich die Werte der Variablen / Arrays etc. zur Laufzeit ansehen kann.
    Eine (wahrscheinlich nicht sehr schöne) Möglichkeit ist die Ausgabe per echo(), var_dump(), print_r(), ...

    In den Einstellungen kann man den "Debugmodus" aktivieren. Gibt es eine Möglichkeit die Variablen in diesem Debug-Fenster anzeigen zu lassen?
    Kann man externe Logging-Erweiterungen wie z.B. FireBug/FirePhp, Chrome Logger/ChromePHP in Contao einbinden und den Log der Browser-Konsole verwenden? Gibts irgendwie eine funktionierende/ausführliche Anleitung dafür?

    Ich habe schon nach Lösungen gesucht, wurde aber nicht so richtig fündig, weil vieles veraltet ist und/oder nicht funktionierte.
    Ich würde mich sehr freuen wenn ihr hier ein paar Tipps und Tricks postet.
    Vielen Dank!

  2. #2
    Contao-Fan Avatar von Zero
    Registriert seit
    25.05.2010.
    Ort
    Korntal
    Beiträge
    520
    User beschenken
    Wunschliste

    Standard

    Du hast ja schon alle Möglichkeiten aufgezählt

    In einem Template kannst du in der Regel auch auf diese Funktionen zurückgreifen:
    PHP-Code:
    $this->showTemplateVars();
    $this->dumpTemplateVars(); 
    Wenn du zu der Debug Ausgabe was hinzufügen willst dann einfach deine gewünschten werte dem Debug Array hinzufügen
    PHP-Code:
    $GLOBALS['TL_DEBUG'][] = "Debug"
    Selber was dazu gelernt...
    Geändert von Zero (22.09.2013 um 23:10 Uhr) Grund: Code Korrektur
    Mein Blog -> brothers-project.de

  3. #3
    Contao-Nutzer
    Registriert seit
    17.12.2010.
    Ort
    Schwabenländle
    Beiträge
    120

    Standard

    Erstmal danke für deine Antwort.

    Ich schätze du solltest den Code nochmal bisschen überarbeiten, oder ich verstehe etwas total falsch...

    Zitat Zitat von Zero Beitrag anzeigen
    Wenn du zu der Debug Ausgabe was hinzufügen willst dann einfach deine gewünschten werte dem Debug Array hinzufügen
    PHP-Code:
    $GLOBALS['TL_CONFIG']['debugMode'][] == "Debug"
    "==" ist meines Wissens ein Vergleichsoperator. Also entweder du hast dich verschrieben und meintest "=" (Zuweisung) oder es fehlt irgendwie ein "if" oder so?
    Zuweisung macht aber auch keinen Sinn, da du damit ja, wenn ich das richtig verstehe, den Wert aus der localconfig.php überschreibst.
    Wenn in den Einstellungen "Debug-Modus" aktiviert ist, wäre das "true", wenn nicht "false", also wundere ich mich warum nun "Debug" drin stehen soll.

    Vielleicht möchtest du mir nochmal genau erklären was du damit meinst? Ich komm so einfach nicht drauf ;-)


    Vielleicht hast du auch das gemeint was Bugbuster auf seiner Webseite beschreibt:
    http://www.contao.glen-langer.de/showtemplatevars.html -> Ausgabe über TL_DEBUG im Debug Modus

    Ich klicke im Backend in meiner Erweiterung auf speichern, die onsubmit() wird aufgerufen, der Code wird abgearbeitet, ich lasse etwas in $GLOBALS['TL_DEBUG']['meineVariable'] = $meineVariable; schreiben.
    Nach der Abarbeitung wird korrekterweise wieder die gleiche Eingabemaske angezeigt. Im Debug-Bereich hat sich aber leider nichts verändert und es werden weiterhin ein paar Arrays mit Datenbankabfragen ausgegeben.

  4. #4
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.614
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo ToNoma,

    ich verwende seit einiger Zeit FirePHP:
    http://de.contaowiki.org/PHP_Debugging

  5. #5
    Contao-Nutzer
    Registriert seit
    17.12.2010.
    Ort
    Schwabenländle
    Beiträge
    120

    Standard Firebug / Chrome Logger

    Die Erweiterung, die im Wikiartikel verlinkt ist, hat mit Contao 3.1 leider überhaupt nicht funktioniert. Sieht auch etwas veraltet aus und gibt es nur von externe Quelle?

    Die alternative Installation hab ich vor ein paar Tagen erfolglos versucht.
    Jetzt habe ich gerade den Hinweis aus dem blauen Kasten gesehen und habe den "Netzwerk Tab in Firebug" aktiviert. Jetzt funktioniert es!
    (Ja, wer alles genau durchliest ist eben deutlich im Vorteil )

    Die Anleitung ist leider schon bisschen älter.
    Was ist denn in Contao3 der richtig Pfad zur Ablage der FirePHP-Dateien?
    "tl_root/plugins/" gibt es ja nicht mehr in Contao3. Ich habs jetzt mal in "tl_root/assets/"-Verzeichnis gepackt.

    Wenn man die Anleitung für Contao3 anpassen würde, wäre das entsprechend:
    FirePHP nach tl_root/assets/FirePHPCore entpacken
    folgende Zeile in tl_root/system/config/initconfig.php einfügen:
    PHP-Code:
    require_once(TL_ROOT.'/assets/FirePHPCore/fb.php'); 

    Im Firefox funktioniert das jetzt einwandfrei. Im Chrome mit "Firebug Lite for Google Chrome" kommt leider nichts. Hat das mal jemand lauffähig bekommen?
    Bzw. den Chrome Logger (http://craig.is/writing/chrome-logger) versucht? Ich bekomm das leider nicht zum laufen - keine Fehler, aber auch keine Log-Meldungen.

  6. #6
    Contao-Fan Avatar von Zero
    Registriert seit
    25.05.2010.
    Ort
    Korntal
    Beiträge
    520
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von ToNoma Beitrag anzeigen
    Erstmal danke für deine Antwort.

    Ich schätze du solltest den Code nochmal bisschen überarbeiten, oder ich verstehe etwas total falsch...



    "==" ist meines Wissens ein Vergleichsoperator. Also entweder du hast dich verschrieben und meintest "=" (Zuweisung) oder es fehlt irgendwie ein "if" oder so?
    Hast recht. Muss ein einfach "=" sein. Frag mich nicht wieso ich ein == gemacht habe . Zittriger Zeigefinger oder so.
    Mein Blog -> brothers-project.de

  7. #7
    Contao-Nutzer
    Registriert seit
    17.12.2010.
    Ort
    Schwabenländle
    Beiträge
    120

    Standard

    Zitat Zitat von Zero Beitrag anzeigen
    Hast recht. Muss ein einfach "=" sein. Frag mich nicht wieso ich ein == gemacht habe . Zittriger Zeigefinger oder so.
    Und das ist so gewollt, dass du den Wert (für ['debugMode'], der eigentlich true/false ist) aus der localconfig.php überschreibst?

  8. #8
    Contao-Fan Avatar von Zero
    Registriert seit
    25.05.2010.
    Ort
    Korntal
    Beiträge
    520
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von ToNoma Beitrag anzeigen
    Und das ist so gewollt, dass du den Wert (für ['debugMode'], der eigentlich true/false ist) aus der localconfig.php überschreibst?
    Hm Frag mich nicht was los war... Ich habe die Falsche Zeile kopiert. Sorry ;/
    PHP-Code:
    $GLOBALS['TL_DEBUG'][] = "Debug"
    Mein Blog -> brothers-project.de

  9. #9
    Contao-Nutzer
    Registriert seit
    17.12.2010.
    Ort
    Schwabenländle
    Beiträge
    120

    Standard

    Zitat Zitat von Zero Beitrag anzeigen
    Hm Frag mich nicht was los war... Ich habe die Falsche Zeile kopiert. Sorry ;/

    Kann vorkommen
    Ich bekomm in der Debug-Leiste (mit der Konstellation aus den Eröffnungsposting) leider immer noch nichts angezeigt...




    Vielleicht kann mir noch jemand die anderen Fragen beantworten:

    1. Wie lautet bei Contao3 der richtig Pfad zur Ablage der FirePHP-Dateien?
      "tl_root/plugins/" gibt es ja nicht mehr in Contao3. Ich habs jetzt mal ins "tl_root/assets/"-Verzeichnis gepackt.
      Ist das so vorgesehen?

    2. Hat schonmal jemand den Chrome Logger / ChromePHP lauffähig eingebunden? Wenn ja, wie?

  10. #10
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Firephp hatte ich auch mal ausprobiert, arbeite aber nicht mehr damit. Weiß leider nicht mehr, wie ich ihn eingebunden hatte, war auch in Contao 2.9 oder so.

    Auf die Gefahr, dass mich Leo Unglaub jetzt wieder schlägt , ich debugge einfach mit
    PHP-Code:
    $debug print_r($myVartrue);
    $debug htmlspecialchars($debug );
    echo 
    $debug 
    specialchars, damit ich es direkt im FE sehen kann.
    Ich habe noch einen schön formatierten DIV drumherum und lasse mir die Datei und die Zeile mit ausgeben.

    Du kannst auch in eine Datei im Verzeichnis system/logs/ debuggen
    PHP-Code:
    log_message($myVar'debug.log'); 
    (geht das noch in Contao 3?)
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  11. #11
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Du kannst auch in eine Datei im Verzeichnis system/logs/ debuggen
    PHP-Code:
    log_message($myVar'debug.log'); 
    (geht das noch in Contao 3?)
    Ja geht, ich arbeite hauptsächlich so, in Verbindung mir print_r und true wie bei deinem ersten Beispiel, um auch arrays ausgeben zu können.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  12. #12
    Contao-Nutzer
    Registriert seit
    17.12.2010.
    Ort
    Schwabenländle
    Beiträge
    120

    Standard Debugging in separate Log-Datei

    Zitat Zitat von Andreas Beitrag anzeigen
    Du kannst auch in eine Datei im Verzeichnis system/logs/ debuggen
    PHP-Code:
    log_message($myVar'debug.log'); 
    (geht das noch in Contao 3?)
    Hab ich gleich mal mit Contao 3.1 versucht, funktioniert!
    wenn $myVar = "blablabla";
    dann wird automatisch die "system/logs/debug.log" angelegt und ein Log-Eintrag im folgendem Format hinzugefügt:
    [24-Sep-2013 08:38:06] blablabla

    Die Art von Debugging halte ich für Beta-Testphasen sehr nützlich! Vielen Dank für den tollen Tipp

  13. #13
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Du kannst auch in eine Datei im Verzeichnis system/logs/ debuggen
    PHP-Code:
    log_message($myVar'debug.log'); 
    Ist auch so mit das Einzige was in einer Callback-Funktion funktioniert. Neben dem direkten Loggen in eine Datei, die per fopen geöffnet wurde.
    Ein einfaches echo oder das Anhängen an $GLOBALS['TL_DEBUG'] funktioniert alles nicht.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •