Delphi-PRAXiS
Seite 3 von 14     123 4513     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)

DSeven 16. Nov 2004 15:06

Re: PHP Inspection Unit
 
Guten Tag,

So habe bei mir das ganze auf VirtualTree umgestellt hier die Speed Ergebnisse:
400~ KB Datei:
VirtualTree: 50~ ms
TreeView: 1400~ ms

Also ist deutlich.
Also dein Parser ist schon gut, aber wenn du noch mehr optimieren könntest würde ich mich freuen. Aber für den normalen gebrauch ist es natürlich schon mehr als geeignet.

PS: Und das mit dem genauso schnell wie PHPEdit nehme ich zurück.
Dein Parser ist viel schneller. Habe es mit der 400 KB Datei getestet.
PHPEdit: 1 Minute und 40 Sekunden
Deiner: 900~ ms

Also PHPEdit kan einpacken. Obwohl PHPEdit weniger parst. Zum Beispiel parst es keine Interaces. Und public, private und so weiter interessiert den auch nicht. Ich glaube aber eher das liegt dadran das er noch variablen parst und das brauch zeit.
mfg,
DSeven

DSeven 16. Nov 2004 21:30

Re: PHP Inspection Unit
 
Guten Tag,

Habe zwei Fehler im Parser gefunden. Währe nett wenn du sie beseitigen könntest:

1. Wenn ich folgenden Text in einer Datei stehen habe:
remember to include detailed reproduction steps and a stack trace if you have one. You can also submit other feedback;

Dan parst er ihn und fügt einen eintrag ins Treeview ein das er eine include gefunden hat die dann bis zum ; Symbol geht.

2. Es währe nett wenn dein Parser nur PHP Code parsen würde.
Also erstmal prüft ob das was er parst in den Tags <? ?> drin ist.

Ah und noch ein kleiner Verbesserungsvorschlag:
Ich fände es ziemlich geil wenn du bei klassen, funktionen und interfaces noch zwei Variablen machst.
StartBracket und endBracket oder so. Die mir die Position von den Klammern sagen.

Hoffe ich nerve dich nicht alzusehr.

mfg,
DSeven

mirage228 17. Nov 2004 05:59

Re: PHP Inspection Unit
 
Hi,

erstmal Danke für das positive Feedback bzgl. der Geschwindigkeit :)

Nun zu deinen Fragen / Wünschen ;):

Zitat:

währe es eigentlich möglich ohne viel Zeit zu verlieren auch Variablen zu parsen die keinen klassen bezug haben wie in PHPEdit? Währe das letzte Feature was ich vermisse.
Hi,
ich kann versuchen das einzubauen. Wie sich das aber auf die Geschwindigkeit auswirken wird, kann ich dir im vorraus nicht sagen...

Zitat:

PHPDoc support währe auch klasse.
In welcher Weise sollte der sich äußern?

Zitat:

1. Wenn ich folgenden Text in einer Datei stehen habe:
remember to include detailed reproduction steps and a stack trace if you have one. You can also submit other feedback;

Dan parst er ihn und fügt einen eintrag ins Treeview ein das er eine include gefunden hat die dann bis zum ; Symbol geht.
Wenn das nicht in einem Kommentar steht, ist das ja auch kein Wunder da der RegEx nach "inlclude <egal welche zeichen>;" sucht.
Das war für mich am einfachsten, da ich sonst alle Fälle hätte durchlaufen müssen (mal mit Klammer, mal ohne, mal mit Anführungszeichen, mal ohne. Dann werde ich mir diesbezüglich was einfallen lassen...

Zitat:

2. Es währe nett wenn dein Parser nur PHP Code parsen würde.
Also erstmal prüft ob das was er parst in den Tags <? ?> drin ist.
Oh, wo Du das gerade sagst :) Das wäre ne gute Idee! ;)
(Ließe sich damit evtl. auch Problem 1 lösen?)

Zitat:

Ich fände es ziemlich geil wenn du bei klassen, funktionen und interfaces noch zwei Variablen machst.
StartBracket und endBracket oder so. Die mir die Position von den Klammern sagen.
Bei Klassen ist das kein Problem, weil sowieso der gesamte Body ({ ... }) geparsed wird. Bei Funktionen müsste ich das dann noch nachholen, weil in diesen bisher nur der Kopf ("function x()") geparsed wird.

Dann muss ich halt schauen, wie sich das ganze auf die Geschwindigkeit auswirkt - aber extreme Verluste wird es wohl nicht geben.

Zitat:

Hoffe ich nerve dich nicht alzusehr.
Keineswegs :)

mfG
mirage228

P.S.:
Zitat:

Zitat von Pr0g
Ich werde mich mal umschauen, ob ich eine passenden Lib finden kann.

Ok, Danke :) - Wenn Du was Gutes (und Schnelles? ;) ) gefunden hast, melde Dich einfach :)

DSeven 17. Nov 2004 07:58

Re: PHP Inspection Unit
 
Zitat:

Zitat von mirage228
Zitat:

währe es eigentlich möglich ohne viel Zeit zu verlieren auch Variablen zu parsen die keinen klassen bezug haben wie in PHPEdit? Währe das letzte Feature was ich vermisse.
Hi,
ich kann versuchen das einzubauen. Wie sich das aber auf die Geschwindigkeit auswirken wird, kann ich dir im vorraus nicht sagen...

Sollte aber auschaltbar sein falls es zu langsam ist.

Zitat:

Zitat von mirage228
Zitat:

PHPDoc support währe auch klasse.
In welcher Weise sollte der sich äußern?

Also er soll die PHPDocs Tags parsen und dann der Funktion klasse hinzufügen oder so.
Man kann ja mit PHPDoc zum Beispiel beschreibungen für Funktionen erstellen. Und der parser sollte der funktion dann diese Beschreibung hinzufügen.


Zitat:

Zitat von mirage228
Zitat:

2. Es währe nett wenn dein Parser nur PHP Code parsen würde.
Also erstmal prüft ob das was er parst in den Tags <? ?> drin ist.
Oh, wo Du das gerade sagst :) Das wäre ne gute Idee! ;)
(Ließe sich damit evtl. auch Problem 1 lösen?)

Glaube schon

Also das wichtigste für mich ist erstmal eigentlich das er nur ziwschen den Tags <? ?> parst. Das ist mir sehr wichtig, das andere ist nicht so wichtig.

mfg,
DSeven

Pr0g 17. Nov 2004 13:14

Re: PHP Inspection Unit
 
Ich kenne mich mit regulären Ausdrücken nicht so gut aus, hier mal ein Link: Link. Es ist eine Komponente, die reguläre Ausdrücke nach Perl 5 unterstützt.

Vielleicht kannst du dir den Link mal angucken und mir sagen, ob deine Unit damit funktionieren könnte. Falls ja, du aber bei deiner Dll Variante bleiben willst, kann ich versuchen deinen Code auf die Komponente umzuschreiben?

mirage228 17. Nov 2004 13:19

Re: PHP Inspection Unit
 
Zitat:

Zitat von Pr0g
Ich kenne mich mit regulären Ausdrücken nicht so gut aus, hier mal ein Link: Link. Es ist eine Komponente, die reguläre Ausdrücke nach Perl 5 unterstützt.

Vielleicht kannst du dir den Link mal angucken und mir sagen, ob deine Unit damit funktionieren könnte. Falls ja, du aber bei deiner Dll Variante bleiben willst, kann ich versuchen deinen Code auf die Komponente umzuschreiben?

Hi,

Danke für Deinen Mühen. Leider ist die Komponente kommerziell und selbst die "Freeware" Version hat eine sehr nervige Einschränkung: :?
Zitat:

A small reminder pops up only when you run your application outside the Delphi IDE.
Daher kommt eine Verwendung für mich zumindest nicht in Frage...
[edit]Wenn Du diese, oder eine andere, Komponente benutzen möchtest, kannst Du die Unit ruhig umbauen :)[/edit]

mfG
mirage228

Pr0g 17. Nov 2004 13:26

Re: PHP Inspection Unit
 
Oh, dass sie kommerziell, bzw. mit Popup ist habe ich nicht gesehen, in diesem Fall kommt sie für mich auch nicht in Frage.

mirage228 18. Nov 2004 15:11

Re: PHP Inspection Unit
 
Hi,

also ich wollte euch heute mal über den "Zwischenstatus" informieren. Also ich habe mal testweise implementiert, dass der Body der Funktionen auch geparsed wird, sodass man schauen kann, wo die Brackets anfangen und aufhören. Leider hat das bei diesem Versuch die Parsing Zeit meiner "Massendatei" (760 KB) von ~3500 ms auf ~6500 ms hochgejagt. Da werde ich mir noch etwas überlegen müssen. Ich baue daher in eigenen Klassen einen privaten Konstruktor ein, dem ich bereits fertige IMatch Ergebnisse übermitteln kann, sodass das nicht erneut in der DetermineEntityName() erledigt werden muss.
Derzeit bin ich auch noch dabei die Unterscheidung für <? ?> zu machen, damit man auch HTML Dokumente mit eingebettetem PHP richtig parsen kann. :)

Also am Wochende sollte das ganze das fertig sein (hoffe ich :mrgreen:)

mfG
mirage228

DSeven 19. Nov 2004 11:47

Re: PHP Inspection Unit
 
Guten Tag,

Das hört sich ja gut an, hoffe das du es schafst.
Freue mich schon auf den neuen release. Vor allem wegen <? ?> :D

mfg,
Nexis

DSeven 20. Nov 2004 22:48

Re: PHP Inspection Unit
 
Guten Tag,

Ich hätte noch einen Verbesserungsvorschlag für deinen Parser:

Erstelle eine Klasse für die Includes die du von TPHPEntity ableitest.
Die klasse muss eigentlich nichts enthalten ich will nur überprüfen können ob es sich um ein Include handelt
zurzeit geht das ja nicht. Ich meine wenn ich auf ein Node im CodeBrowser zugreife.
Währe ganz nett wenn du das einbauen könntest. Ich wollte das eigentlich selber machen aber dann müsst ich bei allen
deinen neuen Version immer wieder dieses Feature selber einbauen. Deshalb ist es besser wenn du es selber zum Standart machst.

Es geht hier nur um die Bequemlichkeit, Zeit kostet das ja nicht.

mfg,
DSeven


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 Uhr.
Seite 3 von 14     123 4513     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