AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte PHP Inspection Unit
Thema durchsuchen
Ansicht
Themen-Optionen

PHP Inspection Unit

Ein Thema von mirage228 · begonnen am 1. Nov 2004 · letzter Beitrag vom 19. Aug 2007
Antwort Antwort
Seite 11 von 14   « Erste     91011 1213     Letzte »    
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#1

Re: PHP Inspection Unit

  Alt 14. Mär 2005, 18:54
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
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
DSeven

Registriert seit: 13. Aug 2003
114 Beiträge
 
#2

Re: PHP Inspection Unit

  Alt 14. Mär 2005, 19:19
Wie ist die unit aufgebaut. Werden alle Kommentare der unit gespeichert?

cya
Die Freie Entwicklungsumgebung für PHP
Symtec Development Studio
auf http://www.nostalb.de
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#3

Re: PHP Inspection Unit

  Alt 14. Mär 2005, 19:45
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
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: PHP Inspection Unit

  Alt 25. Mär 2005, 18:43
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
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#5

Re: PHP Inspection Unit

  Alt 25. Mär 2005, 23:41
Hab die neue Version gerade mal heruntergeladen und kurz getestet
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#6

Re: PHP Inspection Unit

  Alt 26. Mär 2005, 21:22
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
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#7

Re: PHP Inspection Unit

  Alt 27. Mär 2005, 01:48
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';
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#8

Re: PHP Inspection Unit

  Alt 27. Mär 2005, 11:54
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.

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
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#9

Re: PHP Inspection Unit

  Alt 27. Mär 2005, 15:01
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
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#10

Re: PHP Inspection Unit

  Alt 27. Mär 2005, 15:51
Super, habs gerade getestet und scheint alles in Ordnung zu sein
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 11 von 14   « Erste     91011 1213     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz