carsten schlichting: Tool zum Auflisten aller Variablen in PHP-Scripten

Hi

Ich wollte mal so in die Runde fragen, ob jemand ein Tool kennt, mit dem man die Variablen, Konstanten, Funktionen usw von mehreren PHP-Scripten auflisten kann.

Grüße aus Stuttgart

carsten

  1. echo $begrüßung;

    Ich wollte mal so in die Runde fragen, ob jemand ein Tool kennt, mit dem man die Variablen, Konstanten, Funktionen usw von mehreren PHP-Scripten auflisten kann.

    In PHP können Variablen-, Konstanten- und Funktionsnamen auch erst zur Laufzeit berechnet werden (Variable Variables, Variable Functions). Mitunter sind sie im PHP-Skript gar nicht explizit namentlich aufgeführt und trotzdem vorhanden (EGPCS-Variablen) und können dann auch ohne explizite Namensnennung verwendet werden (z.B. foreach-Schleife über $_POST).
    Und dann können Variablen auch noch entfernt werden (unset()).

    Solch ein Tool kann also nie hundertprozentig richtig funktionieren, wenn es nur den Quelltext liest.

    Was genau für Angaben suchst du?

    Function Handling Functions (z.B. get_defined_functions())
    PHP Options&Information (z.B. get_defined_constants())
    Variable Handling Functions (z.B. get_defined_vars())

    echo "$verabschiedung $name";

    1. Hi,

      In PHP können Variablen-, Konstanten- und Funktionsnamen auch erst zur Laufzeit berechnet werden [...]

      und das ganze dann natürlich für beliebig viele Scopes. Insofern: Was genau ist eigentlich Dein[1] Ziel?

      Cheatah

      [1] Nein, nicht Deins, dedlfix ;-)

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
    2. Hallo

      bin recht neu beim Programmieren und Versuch gerade  Scripte zu kapieren.

      Weil ja die Variablen und Konstanten ( bei Funktionen weiß ich das jetzt nicht?)alle Global sind, wärs ja geschickt alle auflisten zu können. Dann wär alles übersichtlicher und man könnte eventuell sogar sehen, wo in den php-scripten sie benutz/ verändert werden.

      Dem Link in der Nachricht vorher muß ich auch nochmal nachgehen- vielleict ist ja das debugger tool das richtige?

      also
       Danke und Grüße

      carsten

      1. Hi,

        bin recht neu beim Programmieren und Versuch gerade  Scripte zu kapieren.

        herzlich willkommen. Fremder Leute Programmierung zu verstehen ist so ziemlich das Schwierigste, was es in dieser Thematik gibt. Wann immer Du es schaffst, bist Du ein gutes Stück weiter.

        Weil ja die Variablen und Konstanten ( bei Funktionen weiß ich das jetzt nicht?)alle Global sind,

        Sind sie nicht. PHP kennt Scopes. Nicht besonders gut (IMHO), aber es kennt sie.

        Dann wär alles übersichtlicher und man könnte eventuell sogar sehen, wo in den php-scripten sie benutz/ verändert werden.

        Bei guter Programmierung werden keine Variablen, die sich außerhalb des aktuellen Scopes befinden, verändert. Passiert dies doch, spricht man von Seiteneffekten. Eine Variablenzuweisung findet immer nur innerhalb des Scopes statt, in dem sie deklariert wurde - allerdings gerne mit der Rückgabe einer Funktion.

        Dem Link in der Nachricht vorher muß ich auch nochmal nachgehen- vielleict ist ja das debugger tool das richtige?

        Ich habe noch keinen PHP-Debugger ausprobiert; aber grundsätzlich ist ein solches Tool sehr, sehr hilfreich. Java-Entwicklung ohne Eclipse kann ich mir nicht mehr vorstellen.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. hi

          ich hab auch irgendwie das Gefühl, dass wenn man selber etwas programmtechnisch lösen möchte, es dann einfacher ist, aber für den Anfang bleibt mir erstmal nichts anderes übrig, als zu gucken wie es eventuell gehen könnte..

          Ich merk schon, du würdest mir auch einen Debugger empfehlen. Gibt es dort eigentlich auch Freewaresachen?

          Grüße von mir

          carsten

          1. Hi,

            Ich merk schon, du würdest mir auch einen Debugger empfehlen.

            grundsätzlich, ja. Ob es dem Verstehen eines Programms dienlich isr, sei dahin gestellt - ich persönlich bevorzuge dazu einen Ausdruck des Codes. Ein Debugger hat, wie sein Name schon andeutet, eigentlich andere Aufgaben.

            Gibt es dort eigentlich auch Freewaresachen?

            Für PHP? Keine Ahnung.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Moin,

              Gibt es dort eigentlich auch Freewaresachen?

              Maguma Studio http://www.maguma.com/Home.400.0.html steht inzwischen unter MPL und bringt auch einen Debugger mit. Ist aber nicht annähernd mit Zend zu vergleichen. Ansonsten bietet es sich an Eclipse mit dem Plugin PHPEclipse http://www.phpeclipse.de/tiki-view_articles.php zu nutzen.

              SteBu

              1. Hallo zusammen

                also dankeschön für die ganzen Links und Erklärungen.

                grüße

                carsten

          2. echo $begrüßung;

            Ich merk schon, du würdest mir auch einen Debugger empfehlen. Gibt es dort eigentlich auch Freewaresachen?

            Ein Debugger unter PHP ist keine ganz einfache Angelegenheit. Zum einen ruft man PHP-Scripte meist über einen Webbrowser auf. Der hat natürlich keine Ahnung, dass die Seite von PHP zusammengebaut wird und kann dann auch nicht weiter mit PHP kommunzieren, um den Programmablauf zu steuern und Variableninhalte geziehlt anzufragen.

            In vielen Fällen reicht es bei PHP-Scripten aus, Kontrollausgaben mit echo, print_r(), var_dump() in das Script einzufügen.

            Wenn es wirklich ein Debugger sein soll, wird eine Debug-Extension für PHP benötigt und neben dem Browser, ein weiteres Tool benötigt, das die Debug-Extension fernsteuert. (z.B. http://xdebug.org/, http://dd.cron.ru/dbg/)

            Es gibt auch IDEs die das alles schon mitbringen und somit das Debuggen komportabler gestalten. (z.B. http://www.phpedit.com/)

            echo "$verabschiedung $name";

      2. echo $begrüßung;

        Weil ja die Variablen und Konstanten ( bei Funktionen weiß ich das jetzt nicht?)alle Global sind,

        Nein, PHP-Variablen sind (bis auf die Ausnamen der Superglobalen Variablen $_* und $GLOBALS) immer nur innerhalb des Geltungsbereiches vorhanden, in dem sie definiert wurden. Das kann auch der globale Bereich sein, sprich außerhalb von Funktionen.

        Dann wär alles übersichtlicher und man könnte eventuell sogar sehen, wo in den php-scripten sie benutz/ verändert werden.

        Ein Programm, am besten noch mit weiteren inkludierten Teilen erweitert, das alles im globalen Bereich macht, und die Funktionalitäten nicht in Funktionen unterbringt, kann, wie du selbst schon erkannt hast, recht unübersichtlich sein.[*] Das kann dann zu "hübschen" Fehlern führen, die durch mehrfache Variablennamensvergabe entstehen.

        Es wäre dann sinnvoller für abgrenzbare Aufgaben Funktionen zu verwenden. Diese erhalten Parameter und liefern ein Ergebnis. Die Variablen in ihrem Inneren beeinflussen idealerweise den globalen Raum nicht.

        Und wenn es später noch komplexer wird, lohnt sich sicher den Einsatz von Klassen zu erwägen.

        echo "$verabschiedung $name";

        [*] solche Schachtelsätze wahrscheinlich auch :-)

        1. Hi,

          Ein Programm, am besten noch mit weiteren inkludierten Teilen erweitert, das alles im globalen Bereich macht, und die Funktionalitäten nicht in Funktionen unterbringt, kann, wie du selbst schon erkannt hast, recht unübersichtlich sein.[*]
          [*] solche Schachtelsätze wahrscheinlich auch :-)

          das erinnert mich an Douglas Adams' "Per Anhalter durch die Galaxis", in dem es heißt:

          <cite>
          Der vorangegangene Satz ist logisch, das ist nicht das Problem. Lesen Sie ihn nochmal, und Sie werden ihn verstehen.
          </cite>

          Cheatah ;-)

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
  2. Moin,

    Ich wollte mal so in die Runde fragen, ob jemand ein Tool kennt, mit dem man die Variablen, Konstanten, Funktionen usw von mehreren PHP-Scripten auflisten kann.

    Meinst Du einen Debugger für PHP. Wenn ja, schaue dir mal Zend Studio an http://zend.com/store/products/zend-studio/professional.php. Aber der Pro-Version ist dieser mit bei. Trial-Download ist möglich.
    Ich bin vollstens zufrieden damit.

    SteBu