phpbar.de logo

Mailinglisten-Archive

[php] Verstaendnisfrage

[php] Verstaendnisfrage

Wolfgang Hauck php_(at)_phpcenter.de
Thu, 25 Jul 2002 15:18:16 +0200


>Hallo zusammen,

>ich bastle jetzt schon seit bestimmt 1 1/2 Jahren an und mit PHP, aber
eine
>Grosse sache habe ich bis dato noch nicht machen müssen/dürfen !

>Klassen...

>Meine Frage ist nun, was spricht für die Verwendung von class und in
>welchem Fall sollte man sie nehmen in welchem nicht ?

Hi Jens,

Klassen solltest du immer dann verwenden, wenn Funktionen und Variablen in
einem komplexen Zusammenhang stehen, d.h. die Funktionen erzwingen sich
gegenseitig.

Beispiele:

Mime - Mail Versand,
Templates,
Benutzeranmeldungen e.t.c.

Für all diese Dinge benötigst du mehrere Funktionen/Variablen die in einem
direkten Zusammenhang stehen.

Bei Mime - Mail wäre das z.B.

Variablen:

  var $classname = "mime_mail";  ## Persistence Support
  var $parts;
  var $to;
  var $from;
  var $headers;
  var $subject;

Funktionen:
 function mime_mail()
 function build_message($part)
 function build_multipart() 
 function add_attachment($message, $name =  "", $ctype =  "application/o
ctet-stream")
und
 function send() 

Die Aufrufe wären dann etwa:

  $attachment = fread(fopen("test.jpg", "r"), filesize("test.jpg")); 

  $mail = new mime_mail();
  $mail->from = "foo_(at)_bar.com";
  $mail->headers = "Errors-To: foo_(at)_bar.com";
  $mail->to = "bar_(at)_foo.com";
  $mail->subject = "Testing...";
  $mail->body = "This is just a test.";
  $mail->add_attachment("$attachment", "test.jpg", "image/jpeg");
  $mail->send();

Du siehst das hier sogar der Laie erkennen kann, dass es sich um Code für
einen Mailversand handelt. Ein zweiter nicht zu verachtender Vorteil ist,
dass du Klassen erweitern kannst.

z.B.:

class mime_more extends mime_mail...

Zusätzliche Funktion:

 function pruefe_EMailSyntax($string)


Hier lassen sich nicht nur zusätzliche Funktionen einfügen, sondern auch
bereits bestehende Funktionen überschreiben.

Die Funktion pruefe_EMailSyntax($string) kannst du aber auch anderweitig
verwenden. Hier bietet sich an, diese Funktion in einer Include - Datei
abzulegen und diese bei Gebrauch einzubinden. Gerade Sytaxprüfungen
(Variablentyp, Datumsauswertungen, Links, Dateinamen u.s.w) werden fast in
jeden Script gebraucht. Um nicht jedesmal ein new... einzugeben speichere
ich diese als Funktionsbibliothek ab, da diese Funktionen für sich selbst
abgeschlossen sind (wenige Parameter, ein Ergebnis).
Letztendlich musst du selbst entscheiden welcher Weg der richtige ist. Bei
kompilierten Programmen kommt natürlich noch der Speicherbedarf bzw. die
Performance in Betracht, bei php spielt das eine untergeordnete Rolle
(Bitte hier nicht weiterdiskutieren, ich weiss da gibts 1000 Meinungen).

Ich hoffe dir mit meiner persönlichen Meinung etwas geholfen zu haben.

MFG Wolfgang


php::bar PHP Wiki   -   Listenarchive