Delphi-PRAXiS
Seite 10 von 14   « Erste     8910 1112     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)

Pr0g 23. Jan 2005 21:50

Re: PHP Inspection Unit
 
Zitat:

Zitat von DSeven
Werde aber einige Sachen nicht übernehmen zum Beispiel das compilieren von PHP Code mittels php.exe. Das sollte jeder für sich machen.

Da denke ich auch, dass sowas nicht rein muss, könnte vielleicht als zweite/andere Unit veröffentlicht werden, falls überhaupt nötig.

mirage228 24. Jan 2005 06:22

Re: PHP Inspection Unit
 
Hi DSeven,

Du kannst die Unit gerne nach C# portieren, wenn Du magst :)
Ich könnte auch mal versuchen, dass ganze in Delphi.NET als Assembly zu kompilieren. Das kannste dann ja auch in C# verwenden.
Mich würde auch mal der Geschwindigkeitsunterschied zwischen den aktuellen RegExes und den .NET RegExes interessieren :)

Nun gut, wenn ihr das nicht möchtet, lasse ich das mit den Includes parsen weg. Das ist vielleicht wirklich etwas, was der Benutzer selbst erledigen sollte.
Das mit dem PHP Syntax Check war aber eigentlich dazu gedacht, dem Benutzer die Möglichkeit zu geben um zu überprüfen, ob sein Code richtig ist. Falls dieser nämlich Syntaxfehler enthält, können beim Parsen auch unerwartete Resultate auftreten. Und bevor das passiert, kann man halt überprüfen, lassen ob alles so läuft, wie es soll. Aber das könnte man auch auslagern, das stimmt schon.

mfG
mirage228

P.S.: Bald gibts wieder was Neues :mrgreen:

mirage228 25. Jan 2005 20:47

Re: PHP Inspection Unit
 
Abend,

heute ist es endlich so weit :mrgreen:
Die Version 2.0 ist endlich fertig.

Es gibt massig Bugfixes und natürlich wieder einige neue Features. ;)

Hier die komplette Liste aller Änderungen:
  • Fehler behoben, dass einige IRegEx Interfaces im finalization Abschnitt nicht auf "nil" gesetzt wurden.
  • Fehler beim Erkennen von Default-Parametern von Methoden, die ein Komma enthielten, behoben.
  • Fehler behoben, dass eine Include-Dateie nicht erkannt wurde, falls Sie das letzte Element im
    Quelltext waren und kein Komma am Ende besaß. Bitte beachten, dass in diesem Fall unter gewissen Umständen das gematchte Resultat etwas länger sein kann, als erwartet, da in diesem Fall bis zum Ende der Zeile gematched wird.
  • Fehler behoben, dass das Parsen fortgesetzt wurde, auch wenn keine korrekten PHP-Tags gefunden wurden. Dieser Fehler trat auf, falls wenn der PHP-Tag auskommentiert war und der PHP Inspector versucht hat, den nächsten korrekten Tag zu finden.
  • Fehler behoben, dass define()-Konstanten nicht erkannt wurden, falls der Wert der Konstante
    mit einer Variable initialisert wurde.
  • Fehler behoben, dass define()-Konstanten nicht erkannt wurden, falls der letzte Parameter (der Dritte) keine Zahl war.
  • Fehler behoben, dass die temporäre Datei, die beim SyntaxCheck() evtl. erstellt wurde, nicht gelöscht worden ist, falls der Syntaxcheck keine Fehler aufwies.
  • Endlosschleifen in TPHPSource.FindInterface(), TPHPSource.FindClass() und TPHPSource.FindMethod() behoben.
  • Die Deklaration von TPHPSource.FindMethod() wurde nun wieder so eingerichtet, dass auch Interfaces in den AClass Parameter übergeben werden können.
  • Fehler behoben, dass ein implementiertes Interface einer Klasse nicht erkannt wurde, falls die Klasse bereits eine andere Klasse erweiterte.
  • Option zum Aufsuchen aller lokal referenzierten Variablen einer Methode hinzugefügt.
    Dieses Feature ist standardmäßig deaktivert. Man kann es aber durch den $FUNCTIONVARIABLES
    Compilerschalter aktivieren.
  • Unterstützung für Klassen-Konstanten nun auch für Interfaces hinzugefügt.
  • Neue Eigenschaft ExtendsInterface für TPHPInterface. Es enthält den Namen des Interfaces,
    dass von dem jeweiligen TPHPInterface erweitert wird.
  • Mehrfachvererbung bei Interfaces wird nun unterstützt. Es werden alle implementierten (TPHPClass) und erweiterten (TPHPInterface) Interfaces erkannt.
  • RegEx Konstanten sind nun als resourcestrings deklariert.

Auch wenn es so viel Neues gibt, hat sich die Parsinggeschwindigkeit dabei nur minimal verlangsamt. :)

Ich habe mir Mühe gegeben so gut wie alles zu testen. Solltet ihr dennoch Fehler finden, sagt mir bitte bescheid ;)

Den Download findet ihr, wie bereits zuvor, im ersten Beitrag des Threads.

mfG
mirage228

Pr0g 26. Jan 2005 14:00

Re: PHP Inspection Unit
 
Werde das Update in Webweaver integrieren und auch genauer testen, wenn ich wieder weitermache ;)

mirage228 29. Jan 2005 18:51

Re: PHP Inspection Unit
 
Hiho,

habe eben noch einen klein Fehler berichtigt, der verursachte, dass die TextPos von Entitites in einer Klasse, die ein Interface implementierte nicht korrekt waren.

Die verbesserten Archive sind im ersten Beitrag zu finden ;)

Wer sich die Datei eben selbst patchen möchte, der ändere bitte folgende Zeile (befindet sich hinter dem "implementation")
Delphi-Quellcode:
  CLASSSTR     = '((((\s+)(extends)(\s+)(\w+?)|)(((\s+)(implements)(\s+)' +
    '(.*)(\s*)(?:\{))|))|)';
zu

Delphi-Quellcode:
  CLASSSTR     = '((((\s+)(extends)(\s+)(\w+?)|)(((\s+)(implements)(\s+)' +
    '(.*)(\s*)(?=\{))|))|)';
mfG
mirage228

mirage228 5. Mär 2005 17:04

Re: PHP Inspection Unit
 
Hi ho,

Heute gibts wieder eine Version des PHP Inspektors: Es ist die Version 2.1

Sie enthält nicht viele neue Features, sie berichtigt hauptsächlich einen Fehler, der mir aufgefallen ist.

Hier also die Liste der Änderungen:
  • Fehler behoben, dass Funktionen, die eine Referenz zurücklieferten (Funktionsname begann mit "&"), nicht erkannt wurden.
  • Neue Boolean-Eigenschaft ReturnsReference für TPHPMethod und alle seine Nachfahren. Damit kann bestimmt werden, ob eine Funktion eine Referenz zurückgibt oder nicht.

Auch habe ich eine (englische) Readme-Datei im HTML Format geschrieben, die einen kurzen Überblick über die Features des PHP Inspektors gibt und kurz erläutert, wie man ihn verwendet.

Den Download gibts, wie immer, im ersten Beitrag ;)

mfG
mirage228

DSeven 5. Mär 2005 18:06

Re: PHP Inspection Unit
 
Danke für die neue Version.

Werde sie gleich mal testen.

cya

DSeven 13. Mär 2005 23:35

Re: PHP Inspection Unit
 
Hallo,

So habe mir mal die Mühe gemacht und einen PHPDoc Parser geschrieben. Bin aber noch nicht dazu gekommen ihn in deine Unit einzubauen.
Der Parser geht folgender massen vor: Wenn deine Unit nach einer Klasse, Funktion Parst bzw. eine gefunden hat dann schaltet sich mein Parser ein und sucht ein PHPDoc Comment.

Das Problem ist jetzt nur, ich weis nicht wirklich wie ich das in meinen Editor (denn ich weiter mache) einbauen kann. :D

Wenn ich Fertig bin werde ich die unit mal posten.

cya

mirage228 14. Mär 2005 16:35

Re: PHP Inspection Unit
 
Zitat:

Zitat von DSeven
Hallo,

So habe mir mal die Mühe gemacht und einen PHPDoc Parser geschrieben. Bin aber noch nicht dazu gekommen ihn in deine Unit einzubauen.
Der Parser geht folgender massen vor: Wenn deine Unit nach einer Klasse, Funktion Parst bzw. eine gefunden hat dann schaltet sich mein Parser ein und sucht ein PHPDoc Comment.

Hi,

das ist ja echt klasse :thumb:
Ich denke Deine Parsing Funktion / Klasse sollte sich ganz gut mit der TPHPComment(s) zusammenbringen lassen, da die ja beim finden eines Entities sowieso prüft, ob dieser in Kommentaren ist. Danach könntest Du ja Dich ja der bereits gefundenen Kommentare bedienen. :)

Zitat:

Das Problem ist jetzt nur, ich weis nicht wirklich wie ich das in meinen Editor (denn ich weiter mache) einbauen kann. :D
Also von der GUI aus könntest Du ja unter jede Klasse einen bearbeitbaren Kommentar-Node ins TreeView einfügen oder so...

Zitat:

Wenn ich Fertig bin werde ich die unit mal posten.
Ah gut, mich würde besonders die genau technische Realisierung (Regexe etc.) interessieren :)

mfG
mirage228

DSeven 14. Mär 2005 18:41

Re: PHP Inspection Unit
 
Zitat:

Zitat von mirage228
Zitat:

Wenn ich Fertig bin werde ich die unit mal posten.
Ah gut, mich würde besonders die genau technische Realisierung (Regexe etc.) interessieren :)

Naja da hab ich es nicht so mit Regexe. Deswegen weis ich ja auch nicht wie sich das in deine Unit einbringen liesse weil mein Code ohne Regexe arbeitet. Aber er arbeitet ohne Fehler.
Kann sein das meine Methode auch ein wenig umständlich ist da ich zeichen für zeichen durchgehe. Aber eigentlich hab ich damit noch keine wirklichen probleme was speed oder funktionalität angeht.

cya


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr.
Seite 10 von 14   « Erste     8910 1112     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