Ankündigung

Einklappen
Keine Ankündigung bisher.

(Abstrakte) Klasse --> HTML-"Doku" aktueller Stand der Properties?

Einklappen

Neue Werbung 2019

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

  • (Abstrakte) Klasse --> HTML-"Doku" aktueller Stand der Properties?

    1.) Ja, habe gesucht, aber offenbar mit den falschen Schlagworten

    2.) Ich suche ein PHP Script, das mir den aktuellen Inhalts-Stand der Properties (hauptsächlich Arrays) einer abstrakten Klassse in Form einer (oder mehrerer) Tabelle(n) in HTML ausgibt.

    Ich bin mir sehr sicher, dass das schon viele vor mir programmiert haben ... allein, ich finde es nicht!
    Ich muss PHP im Kontext Home Automation nutzen (Vorgabe Hersteller und nicht zu ändern). Da kommt es leider ggf. auf ms an. Deshalb manche "seltsame" Frage.


  • #2
    Eine abstrakte Klasse kann nicht initialisiert werden, der Inhalt der Attribute muss also doch schon im Quelltext stehen?!

    Kommentar


    • #3
      Ich weiss ja auch nicht was ich mit der Antwort anfangen soll ...

      1.) Die Properties einer abstract Class können sich beliebig während der Laufzeit ändern (ausser Consts)

      2.) natürlich stehen die Werte alle im Code - in ca. 200 Dateien an verschiedensten Stellen (wie das auch bei "normalen" Objekten der Fall ist), denn per

      PHP-Code:
       class::$var['key']="value"
      oder per Methodenaufruf können ALLE vars [ selbstverständlich erst nach Klassen-Definition -- bei mir hat z.B. jede abstrakte Klasse die Methode "init()" ] beliebig geändert werden.

      Ich suche schlicht nach einer schöner in HTML formatierten Ausgabe als

      print_r( abstractclass::$var );

      Da die meisten meiner arrays eindimensionale assoziative arrays sind, sollte es dafür sicher schon tonnenweise code geben ... nur: wo?

      PEAR HTML_table hat leider einen bug und wirft ne

      Strict Notice: "Non-static method PEAR::isError() should not ..."

      Daher suche ich nach anderem.
      Ich muss PHP im Kontext Home Automation nutzen (Vorgabe Hersteller und nicht zu ändern). Da kommt es leider ggf. auf ms an. Deshalb manche "seltsame" Frage.

      Kommentar


      • #4
        Zitat von jwka61 Beitrag anzeigen
        Ich suche schlicht nach einer schöner in HTML formatierten Ausgabe als

        print_r( abstractclass::$var );
        setze in der php.ini html_errors auf On, und aktiviere xdebug und nutze var_dump

        zusätzlich kannste breakpoints setzen und debuggen mit einer normalen IDE, Netbeans oder PHP
        apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

        Kommentar


        • #5
          Wenn du die Ausgabe zum debuggen nutzen willst, ist BlackScorps Beitrag der einzig richtige Weg.

          Wenn du die Ausgabe für irgendeinen anderen Zweck verwenden möchtest (und deine Lösung nicht auf eine Klasse beschränkt sein soll), ist der naheliegenste Weg wohl, über die von ReflectionClass::getStaticPropertyValue() bzw. ReflectionClass::getStaticProperties() zurückgebenenen Werte zu iterieren und entsprechend in html zu verpacken und anschließend mit css zu stylen.
          Zitat von nikosch
          Naja, anscheinend spricht die Steckdose kein HTTP. LOL

          Kommentar


          • #6
            ist der naheliegenste Weg wohl, über die von ReflectionClass::getStaticPropertyValue() bzw. ReflectionClass::getStaticProperties() zurückgebenenen Werte zu iterieren und entsprechend in html zu verpacken und anschließend mit css zu stylen.
            So ist es. Das habe ich auch schon für die reine Consolen-Ausgabe gemacht (--> Debugging ist erledigt) und möchte das jetzt für Browser haben, aber ich möchte wetten, dass genau diese (für mich Syssiphus-Arbeit, weil wenig HTML Erfahrung) schon vielfach gemacht wurde.

            Die Namen der Arrays zu kriegen ist ja ein Kinderspiel. Sie dann aber HTML-gerecht zu formatieren, ist (für mich) die hohe Kunst, bei der ich gerne auf bestehenden Code (HTML_table sollte das ja können) zurückgreifen würde.

            Und dazu suche ich halt Hinweise ...
            Ich muss PHP im Kontext Home Automation nutzen (Vorgabe Hersteller und nicht zu ändern). Da kommt es leider ggf. auf ms an. Deshalb manche "seltsame" Frage.

            Kommentar


            • #7
              Zitat von jwka61 Beitrag anzeigen
              Die Namen der Arrays zu kriegen ist ja ein Kinderspiel. Sie dann aber HTML-gerecht zu formatieren, ist (für mich) die hohe Kunst,
              es gehört wohl auch zur hohen kunst meinen beitrag zu lesen php erlaubt dir das direkt es ist schon implementiert man muss es nur nutzen..
              apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

              Kommentar


              • #8
                @Blackscorp:
                Sorry, das hat sich mir aus Deinem Beitrag nicht erschlossen.

                Bei mir ist xDebug nicht installiert und es klang eher nach Debugging-Hilfe denn nach formatiertem HTML-Output, auch der Hinweis von Suralc ging in diese Richtung.

                Könntest Du mir vielleicht den output, den die Lösung bringt, für ein einfaches assoziatives Array mal hier posten? Dann weiss ich auch gleich, ob oder ob nicht das für meine Zwecke passt.

                Danke im Voraus!
                Ich muss PHP im Kontext Home Automation nutzen (Vorgabe Hersteller und nicht zu ändern). Da kommt es leider ggf. auf ms an. Deshalb manche "seltsame" Frage.

                Kommentar


                • #9
                  Zitat von jwka61 Beitrag anzeigen
                  @Blackscorp:
                  Sorry, das hat sich mir aus Deinem Beitrag nicht erschlossen.

                  Bei mir ist xDebug nicht installiert und es klang eher nach Debugging-Hilfe denn nach formatiertem HTML-Output, auch der Hinweis von Suralc ging in diese Richtung.

                  Könntest Du mir vielleicht den output, den die Lösung bringt, für ein einfaches assoziatives Array mal hier posten? Dann weiss ich auch gleich, ob oder ob nicht das für meine Zwecke passt.

                  Danke im Voraus!
                  1) print_r ist auch nur für debugging gedacht, nicht für andere späße
                  2) ich nutze xdebu im zusammenhang mit breakpoints, ich kriege jede variable in einem bestimmten abschnitt des programmflußes in meiner IDE

                  du hast halt immer noch nicht gesagt was du willst, denn alternative zu print_r zu suchen um ein assoziatives array auszugeben IST debugging

                  aber so sieht dann eine ausgabe mit html_errors On in der php.ini

                  PHP-Code:
                  echo '<pre>'.print_rabstractclass::$var ,true).'</pre>'//tuts auch 
                  apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                  Kommentar


                  • #10
                    ok. was will ich:

                    Ich möchte von einem (anderen) PC aus per Webbrowser eine URL aufrufen können, die mir die "aktuelle" Situation von internen Arrays einer Objekt-Library anzeigt.

                    Die Objekt-Liberary wird per autoinclude immer geladen, aber je nach Umgebung haben bestimmte Arrays unterschiedliche Werte, die auch Server-Umgebungsabhängig sind (z.B. Geokoordinaten).

                    Im Prinzip suche ich also tatsächlich einen Ersatz für print_r(), der die fraglichen Arrays einfach für einen Webbrowser gut lesbar (und vielleicht sogar ein wenig gestaltbar - Farben, Hintergrund, abwechselnde Zeilen?) als HTML ausgibt.

                    Ist das verständlich oder fehlt noch was?
                    Ich muss PHP im Kontext Home Automation nutzen (Vorgabe Hersteller und nicht zu ändern). Da kommt es leider ggf. auf ms an. Deshalb manche "seltsame" Frage.

                    Kommentar


                    • #11
                      PHP-Code:
                      $array = ['Apfel''Birne''Himbeere' => 'rot''Pflaume' => 'blau'];

                      var_dump($array); 


                      E: Zu langsam

                      Kommentar


                      • #12
                        Die Sache mit "<pre>" ist für mich schon mal ein schöner Schritt - damit kann ich viele Debugging Ausgaben auch vom Browser aus ansehen, was aber offenbar nur mit print_r() geht, bei var_dump() schiebt es mir wieder alles in eine Zeile ohne jede Formattierung.

                        Jetzt wäre es natürlich noch schö, wenn ne Tabelle draus wird und die Formatmerkmale beeinflußbar wären ...

                        Bei mir im Browser wird z.B. ALLES alle in schwarz dargestellt, keinerlei Farbwechsel.

                        Und: ja, ne IDE ... schön wär's. Ich habe leider dieses System, das, was solches angeht, weit hinten hängt. Es gibt nur nen Editor und ein Meldungsfenster (rein schwarz-weiss).
                        Ich muss PHP im Kontext Home Automation nutzen (Vorgabe Hersteller und nicht zu ändern). Da kommt es leider ggf. auf ms an. Deshalb manche "seltsame" Frage.

                        Kommentar


                        • #13
                          Zitat von jwka61 Beitrag anzeigen
                          ok. was will ich:

                          Ich möchte von einem (anderen) PC aus per Webbrowser eine URL aufrufen können, die mir die "aktuelle" Situation von internen Arrays einer Objekt-Library anzeigt.
                          kling nach remote debugging und xdebug http://xdebug.org/docs/remote

                          auf dem anderen server wird unter port 9000 daten freigegeben und du kannst mit einer IDE auf dem port lauschen und in der IDE dir die daten ausgeben

                          weil von einem anderen PC eine URL aufrufen, bedeutet dass du im live system HTML code ausgibst, die besucher deiner seite sollen ja die information nicht sehen, also brauchste quasi etwas zwischen der HTML ausgabe.

                          in symfony2 gibt es zb die debug toolbar mit allen infomrationen, jedoch hat man das nicht auf dem livesystem laufen


                          was aber offenbar nur mit print_r() geht, bei var_dump() schiebt es mir wieder alles in eine Zeile ohne jede Formattierung.
                          weil du in der php.ini html_errors nicht auf On gestellt hast.. wie oft denn noch?
                          apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                          Kommentar


                          • #14
                            Offtopic: Wo bekommt man PHP so konfiguriert ausgeliefert? Wer macht sowas?!

                            Kommentar


                            • #15
                              Beides ausprobiert:

                              ini_set( "html_errors", 1 ); im Script

                              und
                              html_errors=1 in der ini, incl. Serverneustart ... keine Änderung ...
                              Ich muss PHP im Kontext Home Automation nutzen (Vorgabe Hersteller und nicht zu ändern). Da kommt es leider ggf. auf ms an. Deshalb manche "seltsame" Frage.

                              Kommentar

                              Lädt...
                              X