Delphi-PRAXiS
Seite 11 von 14   « Erste     91011 1213     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 14. Mär 2005 18:54

Re: PHP Inspection Unit
 
Zitat:

Zitat von DSeven
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.

Hm, kommt drauf an, wie Deine Methode optimiert ist, dann könnte sie ggf. ganz flott laufen.

Am besten baust Du die Suche danach direkt in den Programmblock nach "if FComments.CheckIsCommented(...) then" ein. Dann sind die Kommentare schon bis dahin geparsed und Du kannst Sie durchlaufen und ggf. die Daten hinzufügen.

mfG
mirage228

DSeven 14. Mär 2005 19:19

Re: PHP Inspection Unit
 
Wie ist die unit aufgebaut. Werden alle Kommentare der unit gespeichert?

cya

mirage228 14. Mär 2005 19:45

Re: PHP Inspection Unit
 
Zitat:

Zitat von DSeven
Wie ist die unit aufgebaut. Werden alle Kommentare der unit gespeichert?

cya

Also TPHPComments parsed die Kommentare nur wenn es durch die Funktionen "CheckIsCommented" oder "FullParse" gefordert wird. So wird das Parsen überflüssiger Kommentare verhindert.
Die Kommentare, wenn sie geparsed sind, werden von TPHPComments (in TPHPComment Objekten) gespeichert.

mfG
mirage228

mirage228 25. Mär 2005 18:43

Re: PHP Inspection Unit
 
Hi,

so heute gibts wieder eine neue Version - 2.2

Neue Features gibts diesmal nicht, dafür habe ich einige Fehler behoben :)

Liste alle Änderungen:
  • Unnötigen Aufruf von ParseEntityData beim Setzen der SourceText Eigenschaft von TPHPSource entfernt.
  • Fehler behoben, dass wenn ein PHP Konstrukt auf mehrere PHP-Tag Paare verteilt war, es nicht erkannt wurde
  • Fehler beim Herausfinden der Basisklasse im PHP4-Only Modus behoben
  • TextPos Eigenschaft lieferte in einigen Fällen nicht korrekte Resultate (Die von TextPos angegebene Position war ein Zeichen vor der eigentlichen Position)

Den Download gibts wie immer im ersten Post.

mfG
mirage228

Pr0g 25. Mär 2005 23:41

Re: PHP Inspection Unit
 
Hab die neue Version gerade mal heruntergeladen und kurz getestet :thumb:

Pr0g 26. Mär 2005 21:22

Re: PHP Inspection Unit
 
Habe einen kleinen Fehler im Zusammenhang mit Konstanten gefunden. Öffne das Beispielprogramm und pack folgenden Code rein:
Code:
<?php

define('Test', 'a');   // Test = 'a
define('Test', 'aa');  // Test = aa
define('Test', 'aaa'); // Test = 'aaa
define('Test', 'aaaa'); // Test = aaaa
//...

?>
Hat der Wert der Konstante die Länge einer ungeraden Zahl, so wird vorne ein Anführungszeiche (ob einfach, oder doppelt hängt vom benutztem Zeichen in define() ab). Ist der Wert der Länge dagegen gerade, so wird keins angezeigt.

MfG Pr0g

Pr0g 27. Mär 2005 01:48

Re: PHP Inspection Unit
 
Und noch ein Fehler ist mir aufgefallen, der sich auf "include" und "require"(_once) bezieht. Steht einer dieser Befehle in der letzten Zeile, bspw. hier:
Code:
<?php
include
kommt es zu einer Zugriffsverletzung. Wenn sie nicht in der letzten Zeile stehen, so wie hier:
Code:
<?php
include
//leere Zeile
gibt es keine Probleme.

Edit: Bei folgendem Code wird der Text nach $to_require als Includedatei, bzw. require aufgenommen, das sollte ja nicht:
Code:
<?php
$to_require = 'meine_datei.php';

mirage228 27. Mär 2005 11:54

Re: PHP Inspection Unit
 
Hi pr0g,

Danke fürs Fehlersuchen. :)

Also der Fehler mit den define()s ist ja äußerst seltsam, sollte aber relativ einfach zu beheben sein - hoffe ich *g*. :)

Bei dem Include in der letzten Zeile habe ich lediglich vergessen einmal zu prüfen, ob der String länger ist als 0 Zeichen bevor ich versuche auf ein Zeichen zuzugreifen. :oops:

Aber der letzte Fehler hats wohl in sich. Man kann ihn, soweit ich das sehe, einfach durch das Hinzufügen einer Word Boundary (\b) Assertion nach dem "(?<!\$)" beheben, jedoch vergrößerte sich die Parsing-Zeit in meiner Testdatei (ca. 750 KB) von 2,7 Sek auf 3,3 Sek, was ich nicht besonders schön finde. Ich versuche das Problem noch anders in den Griff zu kriegen, aber wenns nicht anders geht, werde ich das wohl so mit dem \b machen. :?

Edit: Hab doch noch ne sehr einfache Lösung gefunden. Die Assertion (?<!\$) muss nur so angepasst werden, dass weder ein Alphanummerisches Zeichen, ein Unterstrich, noch ein $ oder ein sonstiges ASCII Zeichen, das einem Variablenbezeichner entsprechen kann, vor dem Match ist. Also einfach: (?<![\$\w\x7f-\xff])
In meinen Versuchen klappt das bisher sehr gut, also denke ich, mache ich das so. Bei dieser Variante gibts auch keine spürbaren Geschwindigkeitseinbußen :)

Wenn alles glatt geht, gibts heute eine neue bzw. eine aktualisierte Version.

mfG
mirage228

mirage228 27. Mär 2005 15:01

Re: PHP Inspection Unit
 
Hi ho,

so die neue Version 2.3 ist fertig. Ich hoffe ich konnte alle Fehler zufriedendstellend behoben :)

Die neue Version enthält insgesamt folgende Änderungen:
  • Include-Dateien werden nicht mehr aufgeführt, falls kein Dateiname dahinter angegeben wird (wenn z.B. nur "include" schreibt)
  • Fehler behoben, dass Variablen fälschlicher Weise als Include-Dateien erkannt wurden (wenn man z.B. "$to_require = "file.php"" schrieb.)
  • Zugriffsverletzung behoben, die auftrat, wenn ein Include, Require, Include_Once oder Require_Once Befehl als letztes in einer Datei stand.
  • Fehler beim Parsen der Werte für Define()-Konstanten behoben
  • "placeholder" Methoden aus TPHPEntity und TPHPConstant entfernt (als "abstract" deklariert)

Der Download befindet sich wie gehabt im ersten Beitrag.

mfG
mirage228

Pr0g 27. Mär 2005 15:51

Re: PHP Inspection Unit
 
Super, habs gerade getestet und scheint alles in Ordnung zu sein ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:10 Uhr.
Seite 11 von 14   « Erste     91011 1213     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