Ankündigung

Einklappen
Keine Ankündigung bisher.

Debuggen mit Eclipse, Ausgabe nicht teilweise bis breakpoint

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Debuggen mit Eclipse, Ausgabe nicht teilweise bis breakpoint

    Hallo zusammen,
    PHP wird jetzt meine neue Herausforderung. Los gehts mit Eclipse für PHP nachdem ich schon etliche Zeit mit Eclipse für C++ arbeite und den "Brocken" schon einigermaßen verstanden habe.

    Habe jetzt folgende test.php.......
    PHP-Code:
    <!DOCTYPE html><html>
    <head>
       <meta charset="utf-8">
    </head>
    <body>
    Die 1. Zeile in HTML<br>
    <?php echo "Die 2. Zeile in PHP<br>";
    $i=0.14;
    echo 
    "$i <br>";?>
    Die 3. Zeile in HTML<br>
    </body></html>

    .... und möchte jetzt einen Breakpoint bei "Die 3. Zeile..." setzen um nur die 1. die 2. Zeile und die Variable i im Browser angezeigt zu bekommen. Der Breakpoint lässt sich setzen, das Programm hält an aber es wird nichts ausgegeben. Erst wenn das Programm komplett durchgelaufen ist, erfolgt die Ausgabe aber dann aller Ausgabezeilen.

    Hat jemand eine Erklärung was ich falsch mache oder falsch eingestellt haben könnte?

    Danke

    Tilo


  • #2
    Ich glaube ja fast das hier keiner Eclipse zum PHP-Entwickeln nimmt.

    Eclipse ist nen langsames, träges Monster.

    Freie momentan weit verbreitete IDEs oder erweiterte Editoren sind z.B. "Visual Studio Code", oder "Netbeans for PHP"

    State of the Art ist wohl immer noch "PHPstorm" aber das gibts nur gegen Bares. Mehr Auswahl hast Du im entsprechenden Beitrag in der Wissenssammlung.

    Eclipse ist die denkbar schlechteste Wahl.

    Was das Debuggen angeht. Hast Du denn einen Debugger (XDebug) installiert und mit Deinem Eclipse gemäß Dokumentation verknüpft? Wie das geht kann ich Dir leider nicht sagen da must Du Dir halt die Doku dazu im Netz raussuchen.

    Kommentar


    • #3
      Zitat von synonym Beitrag anzeigen
      Hat jemand eine Erklärung was ich falsch mache oder falsch eingestellt haben könnte?
      Dein Code ist falsch. Versuch dich an EVA zu halten: Eingabe, Verarbeitung, Ausgabe. Damit kommst du gar nicht in die Situation. Das was du i.d.R. debuggst spielt sich auf der Schicht der Verarbeitung ab, es gibt also noch gar keine Ausgabe, sondern nur Ergebnisse die ausgegeben werden sollen.

      Technisch machst du hier nix falsch. Das ist einfach so. Du hast ein Weberserver dazwischen, der seinen eigenen Vorstellung hat was er wie an den Client sendet. Du müsstest dem Webserver sagen er soll alles an den Client senden (flush()), das hab ich den der Form aber noch nicht gesehen. (weil es ebend auch nicht wirklich nötig ist, siehe oben)
      Du könntest vielleicht noch den integrierten Webserver von PHP testen, ansonsten pech. Alternativ kannst du das auch als CLI Anwendung debuggen, dann bekommst du den HTML Code aber auf der Konsole ausgegeben und zusätzlich gibts Probleme wenn du Abhängigkeiten zu HTTP hast (wie z.B. GET/POST/COOKIE).

      Kommentar


      • #4
        Zitat von synonym Beitrag anzeigen
        .... und möchte jetzt einen Breakpoint bei "Die 3. Zeile..." setzen um nur die 1. die 2. Zeile und die Variable i im Browser angezeigt zu bekommen.
        Wie erc schon schrieb, gibt es eine Ausgabepufferung, die erst alles an den Browser schickt wenn das Script fertig ist.

        Hier mal ein Testbeispiel, man sehe sich auch den Quelltext im Browser dazu an.
        PHP-Code:
        <!DOCTYPE html><html>
        <head>
           <meta charset="utf-8">
        </head>
        <body>

        <?php
        ob_implicit_flush
        (); // implicitly calls flush() after every ob_flush()

          
        echo "This output is buffered.\n";
          echo 
        "As is this.\n";

          for (
        $i 0$i 10$i++)
          {
            echo 
        "$i\n";
            
        ob_flush();
            
        sleep(1);
          }
        exit; 
        // stops the script, all after will not be sent to the browser
        ?>
        Die 3. Zeile in HTML<br>
        </body>
        </html>
        Ausgabepufferung inaktiv mit http://php.net/manual/de/function.ob-implicit-flush.php
        Abbruch mit exit.
        Macht aber normalerweise keiner.




        Kommentar


        • #5
          Und zusätzlich zur Ausgabepufferung von PHP gibt es eine Pufferung vom Webserver, eine Pufferung vom Browser, und dann noch möglicherweise Proxy, Antivirenprogramm, usw. usf. Also ein flush() word wohl in den meisten Fällen keine Wirkung zeigen.

          Kommentar


          • #6
            Hallo vielen Dank, hat bei mir wunderbar geklappt mit dem Testbeispiel - sogar in Eclipse . Das man die Ausgabe mit flush() erzwingen muss, bin ich nicht gewohnt. Mit cout << i << bei C++ erfolgt sofort die Ausgabe. Werde aber damit gut leben können da mir der Debugger (xdebug) ja alle Variableinhalte an den Breakpoints zeigen kann.

            Kommentar


            • #7
              daneben .. Output Buffering ... das dürfte sowohl am Xampp (vermutlich?) oder am integrierten Webserver liegen, den eclipse anbietet ... in jedem Fall erfolgt die Ausgabe da erst nachdem
              Entweder:
              - genug Text zusammengekommen ist (mehrere10000 Zeichen wenn ich mich recht erinnere)
              - das Programm zuende ist ...

              Was immer davon zuerst eintrifft !


              Ich bezweifele aber, dass du mit nem Breakpoint im HTML-Teil überhaupt Erfolg haben wirst, weil HTML nunmal gerade nicht durch den PHP-Processor läuft, sondern direkt vom Webserver ausgegeben wird....

              Also in dem Sinne hast du nichts falsch gemacht - du hast nur ne falsche Erwartungshaltung
              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

              Kommentar


              • #8
                Danke ja das ist mir klar, dass ich mit dem Debugger nur innerhalb php unterstützt werde.

                Eclipse integrierter Webserver???? Wie aktiviere ich diesen? Deshalb auch diese Einstellungsoptionen bzgl. interner / externer Webserver.. Wobei ich ja doch xammp benötige wenn ich eine PHP-Datei direkt mit dem Browser starte,oder?
                Bzgl. Eclipse habe ich bisher eigentlich nur gute Erfahrungen gemacht (CDT, Webdeveloper, Arduino.. alles unter einem Dach) ,- ja ein i3 sollte schon vorhanden sein damit Eclipse flott startet und arbeitet.

                Kommentar


                • #9
                  hm .. PHPStorm nimmt auch jedes Quäntchen Prozessorpower, dass es kriegen kann (noch schlimmer IntelliJ aus dem gleichen Hause... Core I7 der 2ten Generation und es dauert gefühlt ne halbe Minute um 2.. 3 Zeilen Code zu analysieren)

                  Xampp bietet für dich den Vorteil, dass du deine Webseiten dann auch ohne Eclipse testen kannst, das hat mich früher immer an Eclipse und Java gestört - man konnte mit Eclipse entwickeln, debuggen und was weiß ich .. aber dann musste man auf die Kommandozeile und per Hand compilen / linken ... echt nervig ...

                  "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

                  Kommentar


                  • #10
                    Ich nutze auch Eclipse und bin zufrieden damit. Das es ein funktionsmoster ist kann ich bestätigen und das es langsam ist, teilweise ebenso. Kommt drauf an wo es eingesetzt wird.
                    Ich habe einen PC mit i7 Quad, 16 GB RAM und Windows10. Hier läuft es sehr gut.
                    Auf meinem Macbook Pro Mid 2012, ist Eclipse in den ersten Minuten unbenutzbar, trotz i5 aber 4 GB RAM.
                    Laptop mit Linux, Core2Duo und 4GB RAM, es startet definitiv schneller als auf dem MacbookPro. Allerdings, so meine Erfahrung, sollte man keinen modernen Desktop fahren, weil der Flaschenhals recht schnell offensichtlich wird. Eclipse braucht ordentlich RAM.

                    Warum ich Eclipse nutze liegt wohl an der Macht der Gewohnheit
                    Ich könnte mir auch PHPStorm leisten und habe ich schon ausprobiert, aber die Gewohnheit hat noch gesiegt

                    Momentan schaue ich mir auch die Möglichkeiten des Debuggers an. Weiter nutze ich noch die Git-Funktion von Eclipse. Das Killerfeature für mich stellt aber die Oberfläche dar, die mMn. sehr wandlungsfähig ist und auf kleinen Bildschirmen damit irre Praktisch ist. Darum habe ich letztendlich auch PHPStorm nicht gewählt.

                    Jeder Editor und jede IDE hat so ihre Vor- und Nachteile und das wichtigste ist wohl die Möglichkeiten des jeweiligen Werkzeugs kennen zu lernen und für sich zu nutzen. Dann macht das Werkzeug auch Spaß

                    Kommentar


                    • #11
                      Zitat von Messier 1001 Beitrag anzeigen
                      State of the Art ist wohl immer noch "PHPstorm" [...]
                      Wo wir schon dabei sind: kann mir jemand erklären, worin genau die Überlegenheit von PHPStorm gegenüber NetBeans liegen soll?
                      Ich habe PHPStorm für mich getestet, komme damit aber beim besten Willen nicht zu Wege; z.B. habe ich den Debugger trotz Doku und google nie zum laufen gebracht. Bei NetBeans war das ganz einfach.

                      Kommentar


                      • #12
                        Netbeans ist OK, wenn es Deinen Ansprüchen genügt.

                        Hauptproblem bei Netbeans ist m.M. nach das Features neuer PHP-Versionen immer ziemlich lange brauchen bis diese in Netbeans verfügbar sind.
                        Sonst wär das sich lange auch meine bevorzugte IDE geblieben.

                        PHP 7.1 Features haben fast ein Jahr gedauert. Das geht aus meiner Perspektive garnicht.

                        Keine Ahnung wo es beim Debuggen in PHP-Storm bei Dir gehangen hat. Ich finde es einfach.

                        Kommentar


                        • #13
                          Zitat von MrChangelog Beitrag anzeigen

                          Wo wir schon dabei sind: kann mir jemand erklären, worin genau die Überlegenheit von PHPStorm gegenüber NetBeans liegen soll?
                          Ich habe PHPStorm für mich getestet, komme damit aber beim besten Willen nicht zu Wege; z.B. habe ich den Debugger trotz Doku und google nie zum laufen gebracht. Bei NetBeans war das ganz einfach.
                          Debugging mit PHPStorm ging mithilfe dieser Anleitung bei mir schon immer (weiß nicht wie du suchst, oder was du machst): https://www.jetbrains.com/help/phpst...ng-xdebug.html

                          Der Vorteil der IDE liegt schon im Namen: Storm = schnell. Du bist damit viel schneller als mit herkömmlichen IDEs. Autocompletion, Method-Stubs integrieren von Interfaces / abstracten Klassen usw.. Auch die Integration von Git, FTP & Co. ist ganz praktisch. Von SSH und Grunt ganz zu schweigen. Zeig mir mal eine andere IDE, die das kann.
                          Außerdem fand ich Netbeans immer so klobig. Hieng ständig und war langsam.
                          Das einzige, was man fairerweise auch sagen muss, was ich vermisse, ist die Vaterklasse (oder Interfaces) direkt beim neuen Klasse anlegen Dialog eintragen zu können, so wie man es von Eclipse her kennt.

                          Kommentar


                          • #14
                            Ich denke mal um IDEs für sich richtig vergleichen zu können, muss man mit ihnen länger arbeiten und vorallem ihre Funktionen besser kennen lernen. Ich habe bisher Eclipse vorallem wegen Git, Code competion, PHPDoc und der Oberfläche verwendet. Mit diesem Thread habe ich mir zb. noch YT-Videos zu PHPStorm, und was die Leute daran mögen, angeschaut. Dabei fiel mir auf das Eclipse einige Features wie PHPStorm auch anbietet, welche Features überhaupt dem Entwickler zu Verfügung stehen um seine Arbeit schneller und einfacher zu erledigen... und wieviel Potential davon bei mir wirklich brach liegt und wie wenig ich damit über meine Werkzeuge weiß.

                            Bis diesen Thread habe ich die IDEs für etwas bessere Editoren gehalten, weil ich auf Arbeit tatsächlich mit Notepad++ am längstem gearbeitet habe (Firmenvorgabe). Also werde ich mein Werkzeug erstmal besser studieren, um auch andere Werkzeuge besser vergleichen zu können. Dann sehe ich vielleicht auch den Mehrwert zb. von PHPStorm. Danke für den Thread

                            Kommentar


                            • #15
                              Zitat von derwunner Beitrag anzeigen
                              Auch die Integration von Git, FTP & Co. ist ganz praktisch. Von SSH und Grunt ganz zu schweigen. Zeig mir mal eine andere IDE, die das kann.
                              Also ich nutze Git in NetBeans und hatte nie ein Problem damit. FTP und SSH habe ich da nie gebraucht und was Grunt ist weiss ich nicht.

                              Kommentar

                              Lädt...
                              X