Delphi-PRAXiS
Seite 2 von 4     12 34      

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 24. Nov 2004 13:44

Re: PHP Inspection Unit
 
Zitat:

Zitat von mirage228
  • was bei gemischten (HTML/PHP) Dokumenten möglicherweise zu falschen Ergebnissen führt.

Guten Tag,

Werde deinen neuen Release mal teste, aber das mit den falschen ergebnissen freut mich ja nicht so sehr :D

mfg,
DSeven

mirage228 24. Nov 2004 13:47

Re: PHP Inspection Unit
 
Zitat:

Zitat von DSeven
Zitat:

Zitat von mirage228
  • was bei gemischten (HTML/PHP) Dokumenten möglicherweise zu falschen Ergebnissen führt.

Guten Tag,

Werde deinen neuen Release mal teste, aber das mit den falschen ergebnissen freut mich ja nicht so sehr :D

mfg,
DSeven

Hi,

das ergibt sich aus der Sache selbst.

Wenn du ein gemischtes Dokument hast, z.B.
Code:
<html>
  <? include("abc.php");
<head>
  <title>Tolle Seite</title>
</head>
<body>
 

Dolle Seite :)</p>
</body>
</html>
wird alles ab dem <? geparsed, da der PHP Tag nicht korrekt geschlossen ist.
Das könnte im schlimmsten Falle zu falschen Parsing ergebnissen führen.

Wenn es ein reines PHP Dokument ist, gibt es damit natürlich keine Probleme :)

mfG
mirage228

DSeven 24. Nov 2004 14:19

Re: PHP Inspection Unit
 
Guten Tag,

Hab ich auch gerade gesehen. ich habe was anderes gedacht. Das ist natürlich normal :)
Finde den release sehr gut vor allem schneller alls der alte.

mfg,
DSeven

mirage228 24. Nov 2004 15:43

Re: PHP Inspection Unit
 
Hi

Zitat:

Zitat von DSeven
Finde den release sehr gut vor allem schneller alls der alte.

Freucht mich :)

Als nächstes versuche ich mal das mit dem PHP Doc zu realisieren. Das sollte sich (hoffentlich) machen lassen :)

mfG
mirage228

mh166 24. Nov 2004 18:24

Re: PHP Inspection Unit
 
Zitat:

Zitat von mirage228
Als nächstes versuche ich mal das mit dem PHP Doc zu realisieren.

Kann mir mal jemand erklären, was PHPDoc egentlich is und wozu man das nutzen kann?

mfg, mh166

mirage228 24. Nov 2004 18:30

Re: PHP Inspection Unit
 
Zitat:

Zitat von mh166
Zitat:

Zitat von mirage228
Als nächstes versuche ich mal das mit dem PHP Doc zu realisieren.

Kann mir mal jemand erklären, was PHPDoc egentlich is und wozu man das nutzen kann?

mfg, mh166

Hi,

schau mal hier: http://www.phpdoc.de/ :)

mfG
mriage228

DSeven 27. Nov 2004 23:30

Re: PHP Inspection Unit
 
Guten Tag,

also ich finde die Funktion FindEntityAt ziemlich gut. Nur leider weis ich nicht was ich der funktionen übergeben muss? Wenn ich der funktion SelStar übergebe funktioniert es nicht.

Was muss man der funktion übergeben?

mfg,
DSeven

mirage228 28. Nov 2004 07:47

Re: PHP Inspection Unit
 
Zitat:

Zitat von DSeven
Guten Tag,

also ich finde die Funktion FindEntityAt ziemlich gut. Nur leider weis ich nicht was ich der funktionen übergeben muss? Wenn ich der funktion SelStar übergebe funktioniert es nicht.

Was muss man der funktion übergeben?

mfg,
DSeven

Hi,

eigentlich muss der Funktion schon SelStart übergeben werden :gruebel:

Bei Methoden in Klassen ist mir aufgefallen, dass PCRE den Index manchmal ein paar Zeichen davor bzw. am Anfang der Zeile anfangen lässt und daher TPHPEntity.TextPos da möglicherweise etwas ungenau ist :?

Da werde ich noch einmal nach schauen müssen.

mfG
mirage228

Edit: FindEntityAt funktioniert natürlich nur korrekt, wenn der Text bereits geparsed wurde und nicht verändert wurde (da ansonsten die gespeicherten Positionen nicht mehr stimmen)!

DSeven 28. Nov 2004 21:58

Re: PHP Inspection Unit
 
Guten Tag,

Gut und ich dachte schon ich mache was Falsch. Ich schicke der funktion also SelStart.
Nur das problem es funktioniert nicht immer.

Wenn der Cursor sich in einer Klassen Funktion befindet, bekomme ich bei einigen Funktionen die Klasse statt der funktion zurück.

Warum?

Edit: Ah und ich vermisse noch ein feature, währe nett wenn du es einbauen könntest undzwar das dein parser auch nach konstanten sucht. Danke

mfg,
DSeven

mirage228 29. Nov 2004 05:56

Re: PHP Inspection Unit
 
Zitat:

Zitat von DSeven
Nur das problem es funktioniert nicht immer.

Wenn der Cursor sich in einer Klassen Funktion befindet, bekomme ich bei einigen Funktionen die Klasse statt der funktion zurück.

Warum?

Hi,

PCRE beginnt den Match für Entities in einer Klasse aus irgendeinem Grund immer manchmal ein paar Zeichen vor dem eigentlichen Eintrag.
Daher kann es am Ende von Funktionen vorkommen, dass diese nicht erkannt werden :?
Da werde ich mir was überlegen müssen, aber ich weiss derzeit noch nicht, woran es liegt.

Zitat:

Edit: Ah und ich vermisse noch ein feature, währe nett wenn du es einbauen könntest undzwar das dein parser auch nach konstanten sucht. Danke
Ah, ok - hatte ich ganz vergessen. Kommt ins nächste Release :)

mfG
mirage228

DSeven 30. Nov 2004 12:17

Re: PHP Inspection Unit
 
Guten Tag,

Komisch warum das nur bei funktionen so ist. Klassen werden ja auch normal erkannt.

mfg,
DSeven

mirage228 30. Nov 2004 13:40

Re: PHP Inspection Unit
 
Zitat:

Zitat von DSeven
Guten Tag,

Komisch warum das nur bei funktionen so ist. Klassen werden ja auch normal erkannt.

mfg,
DSeven

Hi,

Klassen und Funktionen, die nicht zu einer Klasse gehören werden bei mir auch korrekt erkannt.

Der Haken ist aber bei Variablen und Funktionen in einer Klasse. Dort matched PCRE teils, wie gesagt, vom Anfang der Zeile an oder zumindest ein paar Zeichen davor. Ich nehme an, dass das irgendwas mit dem Zeilenumbruch an, der nicht als 2 Zeichen erkannt wird (also "class name{#13#10...}"), aber sicher kann ich das noch nicht sagen. Aber ich bin dabei und hoffe, dass sich das möglichst schnell (und einfach :) ) beheben lässt.

mfG
mirage228

DSeven 4. Dez 2004 23:21

Re: PHP Inspection Unit
 
Guten Tag,

Funktionen haben ja eine Variable Name wo nur der Name der funktion gespeichert ist, fände es super wenn es das gleiche für includes geben würde, wo nur die Datei gespeichert wird.

mfg,
DSeven

mirage228 5. Dez 2004 07:33

Re: PHP Inspection Unit
 
Zitat:

Zitat von DSeven
Guten Tag,

Funktionen haben ja eine Variable Name wo nur der Name der funktion gespeichert ist, fände es super wenn es das gleiche für includes geben würde, wo nur die Datei gespeichert wird.

mfg,
DSeven

Hi,

meinst du sowas, wie eine "Filename" Eigenschaft für den eingebundenen Dateinamen?
Wenn ja, dann würde sich das eigentlich machen lassen :stupid: - obwohl es ja zig Wege gibt so einen Include zu deklarieren...

Ach ja, den Fehler mit dem falschen Index konnte ich beheben - das lag daran, dass ich 2 Matches zusammenkopiere und evtl. zwischen den 2 Matches noch zusätzliche Zeichen sind (#13#10 oder so). Das ist jetzt behoben. :)
Konstanten funktionieren jetzt auch :)

Neue Version gibt es hoffentlich noch heute *g* :mrgreen:

mfG
mirage228

DSeven 5. Dez 2004 11:30

Re: PHP Inspection Unit
 
Zitat:

Zitat von mirage228
Zitat:

Zitat von DSeven
Guten Tag,

Funktionen haben ja eine Variable Name wo nur der Name der funktion gespeichert ist, fände es super wenn es das gleiche für includes geben würde, wo nur die Datei gespeichert wird.

mfg,
DSeven

Hi,

meinst du sowas, wie eine "Filename" Eigenschaft für den eingebundenen Dateinamen?
Wenn ja, dann würde sich das eigentlich machen lassen :stupid: - obwohl es ja zig Wege gibt so einen Include zu deklarieren...

Ja genau das meine ich. Ich weis da gibt es sehr viele wege :D.
Wow freue mich das du die anderen probleme beheben konntest.
Freue mich auf den neuen release.

mfg,
DSeven

mirage228 5. Dez 2004 11:46

Re: PHP Inspection Unit
 
Hi,

so die neue Version ist fertig - es ist die Version 1.8 :)

Folgende Änderungen gibt es:
  • TPHPClass wurde in TPHPCustomClass umbenannt und einige properties wurden entfernt. TPHPClass ist nun von TPHPCustomClass abgeleitet und führt die benötigten properties ein. Das ist nötig, damit jeder Nachfahre von TPHPCustomClass entscheiden kann, welcher properties veröffentlicht werden sollen.
  • TPHPIncludeFile wurde um die Eigenschaften IncludeKind, IncludeKindStr und IncludeFileName ergänzt.
  • Neue Klasse TPHPContant für Kontanten in PHP5
  • Fehler bei Entity-Positionen innerhalb von Klasse behoben
  • Fehler beim Herausfinden des Textes zwischen den PHP-Tags (Durch einen "greedy" Operator wurde zuviel Text gemachted)

Die Beispielanwendung habe ich auch etwas verbessert :)

Die Downloads finden sich, wie gehabt, im ersten Beitrag :)

mfG
mirage228

P.S.: Zum PHPDoc Support bin ich leider noch nicht gekommen :-(
Edit: Schlechtschreibung und BB-Code-Tags :twisted:

Pr0g 5. Dez 2004 15:39

Re: PHP Inspection Unit
 
Endlich habe ich auch mal was Zeit gefunden, die Unit zu Testen und Nutzen. Dabei ist mir folgender Fehler aufgefallen. Wenn eine Variable den Begriff "include" enthält, wird sie als Include-Datei aufgelistet, hier ein Code zum Test aus dem phpBB (template.php):
Code:
<?php
 $include_last_iterator = 'Hallo Welt!';
?>
MfG Pr0g

mirage228 5. Dez 2004 15:46

Re: PHP Inspection Unit
 
Zitat:

Zitat von Pr0g
Endlich habe ich auch mal was Zeit gefunden, die Unit zu Testen und Nutzen. Dabei ist mir folgender Fehler aufgefallen. Wenn eine Variable den Begriff "include" enthält, wird sie als Include-Datei aufgelistet, hier ein Code zum Test aus dem phpBB (template.php):
Code:
<?php
 $include_last_iterator = 'Hallo Welt!';
?>
MfG Pr0g

Hi,

Danke erstmal fürs testen.

Da hast natürlich recht - Da ist der RegEx anscheinend nicht konsequent genug, der matched alles, vom include (etc.) bis zu einem ;. Ich werde das beheben. :)

mfG
mirage228

moritz 5. Dez 2004 15:55

Re: PHP Inspection Unit
 
Tipp: Schalte das Match für Variablen vor das für includes.

Die Unit schau ich mir heute Abend genauer an.

Gruß

mirage228 5. Dez 2004 15:57

Re: PHP Inspection Unit
 
Hi,

lol, habe die Lösung schon gefunden. :mrgreen:

Im initialization beim Erstellen des Includes-RegEx einfach am Anfang des Strings ergänzen:
Code:
[^$]
Damit darf kein $ vor dem include (etc.) auftauchen, damit es erkannt wird. ;)

Die neuen Archive lade ich gleich hoch - sie sind sofort ab sofort verfügbar :)

mfG
mirage228

Pr0g 5. Dez 2004 16:01

Re: PHP Inspection Unit
 
Super, funktioniert ;)

mirage228 5. Dez 2004 16:03

Re: PHP Inspection Unit
 
Zitat:

Zitat von Pr0g
Super, funktioniert ;)

Hi,

ersetze zusätzlich die Zeilen um Nr. 1586 durch dies:
Delphi-Quellcode:
FIncludes.Add(TPHPIncludeFile.Create(Self,
  MatchColl2.Items[i].Value, MatchColl2.Items[i].Index +
  Index + 1)); // + 1 !
, damit der Index der Includes wieder richtig ist ... oder du lädst das neue Archiv runter :)

mfG
mirage228

DSeven 5. Dez 2004 22:52

Re: PHP Inspection Unit
 
Guten Tag,

mir gefält die neue Version eigentlich ganz gut.
Aber wollte noch anmerken das es konstanten ohne Klassenbezug gibt die ja momentan nicht erkannt werden.

mfg,
DSeven

DSeven 5. Dez 2004 23:10

Re: PHP Inspection Unit
 
Guten Tag,

Also bei mir gibt er wenn ich folgendes aufrufe:

Delphi-Quellcode:
phpParser.FindEntityAt(ActiveEdit.Editor.SelStart).Occurence;
Immer die Klasse zurück. Naja ok bei der ersten Klasse gibt er mir wenn ich in einer funktion bin die Funktion zurück aber aber der zweiten klasse gibt er mir die klasse zurück. Warum?

Ahja und bei mir funktionieren die konstanten nicht habe sie wie folgt deklariert:
Code:
class Foo {
     const konstante = "Konstante";
}
Aber die Konstante wird nicht erkannt.
Edit: Habe Fehler gefunden, " wird nicht erkannt :D wenn man ' benutzt geht es. muss behoben werden.

mfg,
DSeven

mirage228 6. Dez 2004 06:29

Re: PHP Inspection Unit
 
Hi,

Zitat:

Zitat von DSeven
mir gefält die neue Version eigentlich ganz gut.

Danke :) - Aber jetzt kommt wohl das "aber" *g*

Zitat:

Zitat von DSeven
Aber wollte noch anmerken das es konstanten ohne Klassenbezug gibt die ja momentan nicht erkannt werden.

Hm... Also im PHP Manual steht:
Zitat:

Zitat von PHP Manual
It is possible to define constant values on a per-class basis [...]

Also gibt es Konstanten imho nur innerhalb einer Klasse - nicht global. :gruebel:

Zitat:

Zitat von DSeven
Ahja und bei mir funktionieren die konstanten nicht habe sie wie folgt deklariert:

Delphi-Quellcode:
class Foo { 
     const konstante = "Konstante";
}
Aber die Konstante wird nicht erkannt.
Edit: Habe Fehler gefunden, " wird nicht erkannt wenn man ' benutzt geht es. muss behoben werden.

Ups :oops:, da haste aber recht. Habe die Deklaration im PHP Manual gelesen und dachte es würden nur normale Hochkommata angenommen. Naja, aber das zu beheben, sollte kein großes Problem sein :)

Zitat:

Zitat von DSeven
Also bei mir gibt er wenn ich folgendes aufrufe:

Delphi-Quellcode:
phpParser.FindEntityAt(ActiveEdit.Editor.SelStart).Occurence;
Immer die Klasse zurück. Naja ok bei der ersten Klasse gibt er mir wenn ich in einer funktion bin die Funktion zurück aber aber der zweiten klasse gibt er mir die klasse zurück. Warum?

Also da scheint es ein Problem mit dem FindEntityCode zu geben. Es wird nur die Klasse selbst zurückgegeben, falls der Cursor in der Klasse, aber bei keiner Konstante, Variable oder Funktion ist. :gruebel:
Ich werde mir das ganze nochmal zu Gemüte führen müssen ...

mfG
mirage228

Pr0g 6. Dez 2004 15:32

Re: PHP Inspection Unit
 
Mir ist auch noch was aufgefallen. Wenn man nach einem Includebefehl das Semikolon mehrere Zeilen nach unten schiebt, so werden die Zeilenumbrüche (als schwarze Striche) mit aufgeführt:
Code:
<?php

  //Includetest
  include('test.php')


;
?>
Ist das Semikolon nicht vorhanden, wird einach das des nächsten Befehls genutzt, auch hier stimmt die Ausgabe dann wieder nicht. Vielleicht solltest du das Semikolon nur zur Überprüfung der Vorllständigkeit nutzen, oder so, hier jedenfalls der Code:
Code:
<?php

  //Includetest
  include('aaa')
  include('test2.php');

?>

mirage228 6. Dez 2004 16:11

Re: PHP Inspection Unit
 
Zitat:

Zitat von Pr0g
Mir ist auch noch was aufgefallen. Wenn man nach einem Includebefehl das Semikolon mehrere Zeilen nach unten schiebt, so werden die Zeilenumbrüche (als schwarze Striche) mit aufgeführt:
Code:
<?php

  //Includetest
  include('test.php')


;
?>
Ist das Semikolon nicht vorhanden, wird einach das des nächsten Befehls genutzt, auch hier stimmt die Ausgabe dann wieder nicht. Vielleicht solltest du das Semikolon nur zur Überprüfung der Vorllständigkeit nutzen, oder so, hier jedenfalls der Code:
Code:
<?php

  //Includetest
  include('aaa')
  include('test2.php');

?>

Hi,

Ok, das erste ist nen Fehler. Den kannst Du fürs erste beheben, indem Du im RegEx-String ein (\s*) vor das Semikolon packst. :)

Das zweite hingegen ist syntaktisch nicht korrekt (wird auch von PHP bemängelt) - da muss ich schauen ob und wie ich das löse :?

Die neue Version kommt, denke ich, heute abend noch, da ich den Fehler im FindEntityAt() Code und bei den Konstanten auch schon behoben habe. :)

mfG
mirage228

Pr0g 6. Dez 2004 16:16

Re: PHP Inspection Unit
 
Zitat:

Zitat von mirage228
Das zweite hingegen ist syntaktisch nicht korrekt (wird auch von PHP bemängelt) - da muss ich schauen ob und wie ich das löse :?

Das Stimmt zwar, aber der User kann ja auch mal eine Fehleingabe machen und dann sollte er trotzdem keine fehlerhafte Ausgabe sehen, so ist das gemeint.

mirage228 6. Dez 2004 18:11

Re: PHP Inspection Unit
 
Zitat:

Zitat von Pr0g
Zitat:

Zitat von mirage228
Das zweite hingegen ist syntaktisch nicht korrekt (wird auch von PHP bemängelt) - da muss ich schauen ob und wie ich das löse :?

Das Stimmt zwar, aber der User kann ja auch mal eine Fehleingabe machen und dann sollte er trotzdem keine fehlerhafte Ausgabe sehen, so ist das gemeint.

Hi,

Ich könnte Dir folgenden "Kompromiss" anbieten:

Ein Include-String wird gemachted, falls die Suchwörter (include etc.) gefunden wurden und für den Rest die folgenden Bedingungen zu treffen.
  • Im darauffolgenden String taucht eine ) auf (Achtung: Falls es mitten im String ist, würde nur bis dahin gematched!)
  • Am Ende snytaktisch korrekt das ; steht. (Diese Variante hätte Vorrang beim Matchen!)

Andernfalls wäre der Match negativ.

Edit: Das Ganze geht natürlich auf Kosten der Zeit. Daher weiss ich nicht, ob es sich lohnt. :gruebel:

mfG
mirage228

Pr0g 6. Dez 2004 18:44

Re: PHP Inspection Unit
 
DSeven scheint ja auch Interesse an dem Projekt zu haben, vielleicht sagt er dazu noch was. Wenns zu sehr auf die Zeit geht, dann lass es erstmal so.

mirage228 6. Dez 2004 18:59

Re: PHP Inspection Unit
 
Zitat:

Zitat von Pr0g
DSeven scheint ja auch Interesse an dem Projekt zu haben, vielleicht sagt er dazu noch was. Wenns zu sehr auf die Zeit geht, dann lass es erstmal so.

Ja, ok, dann lasse ich es erstmal so, wie es ist.

Ahja, habe gerade den Thread Deines Programmes gelesen und da bin ich auf Folgendes gestoßen:
Zitat:

Zitat von mh166
also ich hab mal nochn Bug gefunden: Ich hab folgenden Code:
Code:
$test := '?>';
Ab dem schließenden ">" interpretiert er den Rest nicht mehr als PHP.

Den Fehler gibt es derzeit auch bei mir musste ich feststellen :oops:
Werde den auch noch beheben.

mfG
mirage228

mh166 6. Dez 2004 19:25

Re: PHP Inspection Unit
 
Zitat:

Zitat von mirage228
Ahja, habe gerade den Thread Deines Programmes gelesen und da bin ich auf Folgendes gestoßen:
Zitat:

Zitat von mh166
also ich hab mal nochn Bug gefunden: Ich hab folgenden Code:
Code:
$test := '?>';
Ab dem schließenden ">" interpretiert er den Rest nicht mehr als PHP.


Is doch schön zu wissen, dass man helfen kann! :mrgreen: Was man nich alles machen kann, mit nur einem Beta-Test! :lol:

mfg, mh166

mirage228 6. Dez 2004 21:00

Re: PHP Inspection Unit
 
Zitat:

Zitat von mh166
Is doch schön zu wissen, dass man helfen kann! :mrgreen:

;)

Also mit der neuen Version bin ich weitesgehend fertig, morgen früh lade ich es dann hoch - falls ihr nichts zu beanstanden habt :)

mfG
mirage228

mirage228 7. Dez 2004 19:07

Re: PHP Inspection Unit
 
Hi,

Jetzt gibt es wieder was Spannendes, mit Spiel und Schokolade :mrgreen: - Es ist die Version 1.9 :)

Folgende Fehler habe ich berichtigt:
  • Fehler in der Berechnung der Eigenschaften BeginBracket und EndBracket in der Klasse TPHPClassMethod behoben.
  • Fehler behoben, dass Konstanten in Klassen nur erkannt wurden, falls sie einfache Hochkommata eingebettet waren.
  • Bei einem Include werden eventuelle Leerzeichen bis zum Semikolon nicht mehr in die IncludeFileName Eigenschaft übernommen.
  • Fehler bei der Erkennung von PHP-Tags behoben, falls ein Tag in einen Kommentar oder String eingebettet war.
  • Fehler behoben, der verursachte, dass bei deaktivierter StrictPHPTagCheck Eigenschaft Source ohne ?> trotzdem nicht erkannt wurde.

Die Downloads befinden sich, wie immer, im ersten Beitrag :)

mfG
mirage228

DSeven 8. Dez 2004 11:35

Re: PHP Inspection Unit
 
Guten Tag,

Also die version gefällt mir jetzt :)
Werde es noch weiter Testen mal schauen.

mfg,
DSeven

DSeven 9. Dez 2004 12:30

Re: PHP Inspection Unit
 
Guten Tag,

So habe einen Fehler gefunden.
Undzwar funktioniert FindEntityAt immernoch nicht richtig. Ich bekomme im folgenden Code bei der aller letzten Funktion, die Funktion test ein nil zurück.

Code:
<?php
include('FJ');
class sql
{
   // Variablen werden Deklariert
   var $server;
   var $user;
   var $pw;
   var $db;
   var $query;
   var $result;
   var $zaehler;

   // Funktion um eine Verbindung mit MySQL zu erstellen
   // und eine Datenbank auszuwählen
   function sql ($sql_server, $sql_user, $sql_pw, $sql_db)
   {
      // Variablen werden gesetzt
      // um sie in der class zu benutzen
      $this ->server = $sql_server;
      $this ->user = $sql_user;
      $this ->pw = $sql_pw;
      $this ->db = $sql_db;

      // Verbindung wird gesetzt Handle an Variable übergeben
      $connect = @mysql_connect($this ->server, $this ->user, $this ->pw);

      // Verbindung wird überprüft
      if (!($connect))
      {
         // Falls keine Verbindung hergestellt werden konnte
         // wird ein Hinweis angezeigt
         echo "Keine News";
         // exit;
      }
      else
      {
         // Falls Verbindung erfolgreich
         // wird die Datenbank ausgewählt
         @mysql_select_db($this ->db);
         return true;
      }
   }

   // Funktion zum verarbeiten von querys
   function myquery($query)
   {
      $this ->query = mysql_query($query);
      If ($this ->query)
         return True;
      else
         return False;
   }

   // Funktion zur leichteren Handhabung von
   // mysql_fetch Array
   function fetchArray($query)
   {
      $this ->query = mysql_query($query);
      $this ->result = mysql_fetch_array($this ->query);
      return $this ->result;
   }

   // Funktion zum auslesen des ganzen
   // Inhaltes
   protected function fetchMultiple($query)
   {
      $this ->query = @mysql_query($query);
      $this ->zaehler = 0;
      while ($this ->result = mysql_fetch_array($this ->query))
      {
         $this->result_multiple[$this->zaehler] = array($this->result);
         $this->zaehler++;
      }
      return $this->result_multiple;
   }


   // MySQL Verbindung wird geschlossen
   private function close()
   {
      if (@mysql_close())
         return True;
      else
         return False;
   }
}

?>
<?php
class BaseClass {
   function __construct() {
      print "In BaseClass constructor\n";
   }
}

class SubClass extends BaseClass {
   function __construct() {
      parent::__construct();
      print "In SubClass constructor\n";
   }
}

$obj = new BaseClass();
$obj = new SubClass();
?>
<?php

class MyClass {
   public $public = "MyClass::public!\n";
   protected $protected = "MyClass::Protected!\n";
   protected $protected2 = "MyClass::Protected2!\n";
   private  $private   = "MyClass::private!\n";

   function printHello() {
      print "MyClass::printHello() " . $this->private;
      print "MyClass::printHello() " . $this->protected;
      print "MyClass::printHello() " . $this->protected2;
   }
}

class MyClass2 extends MyClass {
   protected $protected = "MyClass2::protected!\n";

   function printHello() {

      MyClass::printHello();

      print "MyClass2::printHello() " . $this->public;
      print "MyClass2::printHello() " . $this->protected;
      print "MyClass2::printHello() " . $this->protected2;

      /* Will result in a Fatal Error: */
      //print "MyClass2::printHello() " . $this->private; /* Fatal Error */

   }
}

$obj = new MyClass();

print "Main:: " . $obj->public;
//print $obj->private; /* Fatal Error */
//print $obj->protected; /* Fatal Error */
//print $obj->protected2; /* Fatal Error */

$obj->printHello(); /* Should print */

$obj2 = new MyClass2();
print "Main:: " . $obj2->private; /* Undefined */

//print $obj2->protected;  /* Fatal Error */
//print $obj2->protected2; /* Fatal Error */

$obj2->printHello();
?>
<?php

abstract class AbstractClass {

   /* Force Extending class to define this method */
   abstract protected function getValue();

   /* Common method */
   public function print2() {
   print $this->getValue();
   }
}

class ConcreteClass1 extends AbstractClass {
   protected function getValue() {
      return "ConcreteClass1";
   }
}

class ConcreteClass2 extends AbstractClass {
   protected function getValue() {
      return "ConcreteClass2";
   }
}

$class1 = new ConcreteClass1;
$class1->print2();

$class2 = new ConcreteClass2;
$class2->print2();
?>
<?php
interface ITemplate
{
   public function setVariable($name, $var);
   public function getHtml($template);
}


class Template implements ITemplate
{
   private $vars = array();

   public function setVariable($name, $var)
   {
      $this->vars[$name] = $var;
   }

   public function getHtml($template)
   {
      foreach($this->vars as $name => $value) {
         $template = str_replace('{'.$name.'}', $value, $template);
      }
      return $template;
   }
}
?>
<?php
class Setter {
   public $n;
   private $x = array("a" => 1, "b" => 2, "c" => 3);

   function __get($nm) {
      print "Getting [$nm]\n";

      if (isset($this->x[$nm])) {
         $r = $this->x[$nm];
         print "Returning: $r\n";
         return $r;
      } 
      else {
         print "Nothing!\n";
      }
   }

   function __set($nm, $val) {
      print "Setting [$nm] to $val\n";

      if (isset($this->x[$nm])) {
         $this->x[$nm] = $val;
         print "OK!\n";
      } 
      else {
         print "Not OK!\n";
      }
   }
}

$foo = new Setter();
$foo->n = 1;
$foo->a = 100;
$foo->a++;
$foo->z++;
var_dump($foo);

$sql = new sql('hallo1', 'hallo2', 'hallo3');
echo('Fjhgjghhjfghjfg');

function test($ein_test)
{

}
?>
Ahja und hier der link zu den globalen Konstanten:
http://www.php.net/manual/function.define.php

PHPEdit erkennt auf diese weise definierte Konstanten.


mfg,
DSeven

mirage228 9. Dez 2004 15:28

Re: PHP Inspection Unit
 
Hi,

habe den Fehler gefunden. :?
Es ist der selbe Fehler, den ich schon bei TPHPClassMethod behoben hatte :wall: - aber bei TPHPMethod hab ichs vergessen :oops:

Das mit den defines habe ich auch noch mit mit hineingebracht :)
Zudem habe ich eine kleinen Fehler bei den Includes behoben (habe das [^$] durch eine Assertion ersetzt (?<!\$) - Damit liefs bei mir auch etwas schneller :) )

Der Download der verbesserten Version ist im ersten Beitrag zu finden 8)

mfG
mirage228

Pr0g 5. Jan 2005 19:13

Re: PHP Inspection Unit
 
Warum ist bei Konstanten kein "TextPos" verfügbar, fände gut, wenn das mit angegeben wird ;)

mirage228 5. Jan 2005 19:19

Re: PHP Inspection Unit
 
Zitat:

Zitat von Pr0g
Warum ist bei Konstanten kein "TextPos" verfügbar, fände gut, wenn das mit angegeben wird ;)

Ähm, ich weiss ja nicht was für eine Version Du hast, aber alle von TPHPEntity abgeleiteten Klassen haben eine automatisch geerbte TextPos property im Public-Abschnitt :mrgreen: - dazu gehört auch TPHPConstant ;)

mfG
mirage228

Pr0g 5. Jan 2005 19:24

Re: PHP Inspection Unit
 
Hm, stimmt. Delphi hatte es nicht in der Liste aufgeführt (die spinnt manchmal), daher dachte ich es geht net. Aber was anderes. Aus irgend einem Grund ist "ConstantCount" immer 0. Woran kann das liegen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:17 Uhr.
Seite 2 von 4     12 34      

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