Delphi-PRAXiS
Seite 4 von 14   « Erste     234 56     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   PHP Inspection Unit (https://www.delphipraxis.net/33102-php-inspection-unit.html)

mirage228 21. Nov 2004 20:24

Re: PHP Inspection Unit
 
Abend,

so die neue Version (1.6) ist nun fertig.

Hier ist der Changelog:
  • Wie gewünscht habe ich eine Klasse TPHPIncludeFile für Includes genommen :)
  • TPHPClass ist nun Nachfahre von TPHEntity
  • Nur Code in PHP-Tags (<? ... ?>) wird geparsed
  • Bei Interfaces wird nun auchgeprüft, ob diese auskommentiert sind, bevor alles eingelesen wird
  • AnsiCompareStr() Aufrufe durch direkte Stringvergleiche ersetzt (schneller)
  • Neue Eigenschaften Head und Body in TPHPMethod
  • Eigenschaften BeginBracket und EndBracket für TPHPMethod, TPHPClass und TPHPInterface
  • Der Methodenkörper mit dem Code wird nun auch geparsed, um den Anfang und Ende der Methode bestimmen zu können. Diese Option kann bei Bedarf über den Compilerschalter $PARSEMETHODBODY deaktiviert werden.
  • Jeder TPHPEntity Nachfahre hat nun die Eigenschaft Parent vom Typ TPHPClass. Dadurch kann man einfach herausfinden, wozu z.B. eine Methode gehört. Methoden ohne Klassenbezug haben die TPHPSource Instanz als Parent, da dieser auch von TPHPClass abgeleitet ist, sowie die Klassen und Interfaces selbst.
  • Einige Code- und Geschwindigkeitsoptimierungen

In der/den nächsten Version(en) wird es noch PHPDoc Support geben (mal schaun, wie sich das machen lässt) und ich werde versuchen Variablen im Source erkennen zu lassen.

Downloads gibts, wie gehabt, im ersten Beitrag :)

mfG
mirage228

DSeven 22. Nov 2004 15:31

Re: PHP Inspection Unit
 
Guten Tag,

Danke für den neuen Release.
Aber wie es aussieht hast du ihn vorher nicht getestet?

Ich bekomme wenn ich den Namen einer funktion abrufe nicht den Namen sondern alles samt body.
Außerdem wenn ich über den Schalter das mit dem Body einlesen abschalte bekomme ich ein paar fehler das variablen fehlen und so.

Solltest einen Bug Fix machen. ah und noch was bei meinen Interfaces liest er jetzt nicht mal die funktionen ein.

mfg,
DSeven

mirage228 22. Nov 2004 15:59

Re: PHP Inspection Unit
 
Zitat:

Zitat von DSeven
Guten Tag,

Danke für den neuen Release.
Aber wie es aussieht hast du ihn vorher nicht getestet?

Ich bekomme wenn ich den Namen einer funktion abrufe nicht den Namen sondern alles samt body.
Außerdem wenn ich über den Schalter das mit dem Body einlesen abschalte bekomme ich ein paar fehler das variablen fehlen und so.

Solltest einen Bug Fix machen. ah und noch was bei meinen Interfaces liest er jetzt nicht mal die funktionen ein.

mfg,
DSeven

Hi,

oh, sorry, das sind mir wohl ein paar Fehler unterlaufen :oops:

Einmal hatte ich den Schalter falsch herum gemacht und einmal hatte ich in einem Konstruktor (bei deaktiviertem Schalter) den ersten Parameter vergessen.
Das mit den Interfaces war ein kleiner Folgefehler, der zu Folge hatte, dass der Text bereits in einem übergeordnetem Konstruktor gesetzt wurde, ohne dabei jedoch zu parsen. Und beim Setzen über die property hat das dann nicht funktioniert, weil die Texte ja "gleich" waren. Ich hab das mal gelöst, indem beim Konstruktor von TPHPClass auf jeden fall ParseEntity aufgerufen wird.
Das mit dem Abrufen des Funktionsnamen konnte ich nicht nachvollziehen. Bei mir gibt TPHPMethod.Name immer einen korrekten Wert zurück :gruebel:

Auf jeden Fall sind die Fehler behoben :) - Downloads gibts gleich ab sofort im ersten Beitrag

mfG
mirage228

DSeven 22. Nov 2004 21:43

Re: PHP Inspection Unit
 
Zitat:

Zitat von mirage228
Das mit dem Abrufen des Funktionsnamen konnte ich nicht nachvollziehen. Bei mir gibt TPHPMethod.Name immer einen korrekten Wert zurück :gruebel:

Auf jeden Fall sind die Fehler behoben :) - Downloads gibts gleich ab sofort im ersten Beitrag

mfG
mirage228

Guten Tag,

Danke für den schnellen Fix.
Ja und das mit den Funktionen hast du recht :) Ich habe statt Name immer Occurence benutzt :) Also mein fehler.

mfg,
DSeven

DSeven 22. Nov 2004 21:50

Re: PHP Inspection Unit
 
Guten Tag,

Also wenn der {$DEFINE PARSEMETHODBODY} Flag gesetzt ist zeigt er mir die Interface funktionen nicht an, wenn er nicht gesetzt ist werden sie angezeigt.

mfg,
DSeven

mirage228 23. Nov 2004 09:03

Re: PHP Inspection Unit
 
Zitat:

Zitat von DSeven
Guten Tag,

Also wenn der {$DEFINE PARSEMETHODBODY} Flag gesetzt ist zeigt er mir die Interface funktionen nicht an, wenn er nicht gesetzt ist werden sie angezeigt.

mfg,
DSeven

Hi,

bei mir werden Interface Funktionen in jedem Fall erkannt. :gruebel: Wie sieht denn Deine Deklaration aus?
Ah, hab den Fehler! Der sucht versehentlich nun auch bei Interface nach den {} !

mfG
mirage228

mirage228 23. Nov 2004 09:54

Re: PHP Inspection Unit
 
Hi,

so das ist nun auch behoben. :)
Ich habe mal ein paar Beispiele aus der PHP Doku ausprobiert und es scheint wirkich alles zu gehen :)

Die aktualisierten Downloads befinden sich im ersten Beitrag ;)

mfG
mirage228

DSeven 23. Nov 2004 12:14

Re: PHP Inspection Unit
 
Guten Tag,

Ja jetzt geht es wirklich.
Habe aber nebenher was neues gefunden was zu bemengeln ist.

Undzwar parst dein Parser nur Code der zwischen <? ?> steht aber es gibt durchaus programmierer die nur einen anfangs Tags <? setzen und denn ende Tag nicht und mich würde es freuen wenn er alles nach <? parst auch wenn der Tag nicht geschlossen wurde.

mfg,
DSeven

mirage228 23. Nov 2004 12:20

Re: PHP Inspection Unit
 
Zitat:

Zitat von DSeven
Habe aber nebenher was neues gefunden was zu bemengeln ist.

Undzwar parst dein Parser nur Code der zwischen <? ?> steht aber es gibt durchaus programmierer die nur einen anfangs Tags <? setzen und denn ende Tag nicht und mich würde es freuen wenn er alles nach <? parst auch wenn der Tag nicht geschlossen wurde.

Hm, ist eigentlich syntaktisch nicht korrekt, aber selbst PHP.exe scheint es so zu akzeptieren :shock:
Na, dann werde ich das noch einbauen - in Form eines Parameters, wie "StrictPHPTagCheck" oder so.

mfG
mirage228

mirage228 23. Nov 2004 21:00

Re: PHP Inspection Unit
 
Abend,

so ich habe in der neuen Version 1.7 noch ein paar Dinge ergänzt - neben Deinem Vorschlag, DSeven ;)

Was sich geändert hat:
  • Über die Eigenschaft StrictPHPTagCheck von TPHPSource kann das Verhalten beim Verarbeiten von nicht geschlossenen PHP-Tags beeinflusst. Ist der Parameter = FALSE werden auch nicht geschlossene Tags akzeptiert, was bei gemischten (HTML/PHP) Dokumenten möglicherweise zu falschen Ergebnissen führt. Ist der Parameter = TRUE werden nur syntaktisch korrekte Dokumente akzeptiert.
  • Die Eigenschaft VarName von TPHPVariable war fehlerhaft, falls die Variable mit einem Wert initialisert wurde.
  • Methoden in Klassen werden nun mit TPHPClassMethod dargestellt. TPHPMethod ist vorwiegend für Methoden ohne Klassenbezug, da diese keine Abstrakten und Finalen oder Statischen Funktionen erlauben und somit einen einfacheren RegEx benötigen. Das wirkt sich positiv auf die Parsing Zeit aus :)
  • Methoden in Interfaces werden durch die Klasse TPHPInterfaceMethod dargestellt.
  • Eigenschaft IsStatic für TPHPClassMethod und TPHPVariable.

Ich habe diesmal etwas ausführlicher getestet, um Fehler zu vermeiden. Falls ich doch noch Fehler gemacht haben sollte -> Immer her damit :mrgreen:

Downloads gibts, wie immer ;), im ersten Beitrag.

mfG
mirage228


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 Uhr.
Seite 4 von 14   « Erste     234 56     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz