OOP erste Schritte

Chaosengel_Gabriel

Erfahrenes Mitglied
Hallo liebe Leute^^
Ich muss auch mal wieder die Kapazität des Forums belasten ;)

Ich hab mich letzte Nacht mal intensiv mit Objekt Orientierter Programmierung beschäftigt...
War auch soweit kein Problem ^^

Bin nu grad dabei mir ne Klasse zu basteln, um mir etwas zukünftige Arbeit zu erleichtern :D

Meine Frage:
Welche Daten kann man in der Klasse, denn aus dem Skript verarbeiten?
Nur die, die in ein Objekt der Klasse geschickt werden oder kann man auch $_POST-Daten verarbeiten?
 
Geht darum, dass ich mir das schicken einer Email von der Web-Site über Outlook sparen will und stattdessen nen nen Formular und mail() benutzen will...
Dazu wollte ich mir nun ne Klasse schreiben, die das abschicken, kontrollieren der E-Mail übernimmt und mir auch das Formular erzeugt^^

Die $_POST-Daten brauch ich dann aus dem Formular um die Fehlerprüfung in der Klasse abzuarbeiten...

Wie ich das genau löse schau ich mal noch, das Ergebnis poste ich euch dann ma hier ;)
 
Hat aber auch Vorteile: Man könnte sich eine eigene Klasse schreiben, welche $_POST Daten validiert (falls man dies möchte) oder automatisiert die $_POST-Daten zurück gibt und man dies nicht immer neu machen muss. Also im Prinzip spricht nichts dagegeben.

Beim Zend Framework zum Beispiel werden immer GET & POST Daten über eine Methode geholt - um es ein wenig einfacher zu machen ;)
 
Die gesamten "submit"-Routinen ließen sich so in ner Klasse lösen... Zumindestens die meistens essenziell nötige FEHLERPRÜFUNGEN, die man nicht vergessen darf, da die Seite ja nur von "normalen" Usern benutzt wird :D
 
PHP:
<?php
interface Mail_Interface {

    /*
     * Eigenschaften zB:
     *  private String      $_sender
     *  private String[]    $_recipients
     *  private String[]    $_carbonCopies
     *  private String[]    $_blindCarbonCopies
     *  private String[]    $_headers
     *  private String      $_message
     * weitere Methoden zB:
     *  private boolean     validate( $input )
     *  getter, setter, checker, etc
     */

    // Absender setzen
    public function setSender( $sender );

    // Empfänger setzen
    public function addRecipient( $recipient );

    // cc oder bcc hinzufügen
    public function addCarbonCopy( $recipient, $bcc = false );

    // Header hinzufügen
    public function addHeader( $header );

    // setze Nachricht
    public function setMessage( $message );

    // gibt im Erfolgsfall zB true zurück
    public function send();

}

Du erzeugst erstmal zB eine Instanz der Klasse "Mail" und gehst dann so vor:
PHP:
$mail = new Mail();
$mail->setSender( "ich" );
$mail->setRecipient( $_POST['recipient'] );
$mail->setMessage( $_POST['message'] );
$mail->send();
 
Feiner Denkansatz.... ^^
Ich denk mir das nen bissl anders, aber so ist es sehr gut angefangen ;)
Ne simplere Variante reicht aus, da es für mich die übliche mailto: Verlinkung ablösen soll :lol:
 
Wie willst du das den ablösen? Du brauchst ja ein Formular indem du alle Daten einträgst. Oder wie stellst du dir das vor?
 
Das mit der Ausgabe des Formulars soll am besten die Klasse mit übernehmen... ^^
Die Punkte für CC und BCC sind für ne normale E-Mail unwichtig...
Ich muss da noch nen bissl dran rumtüfteln...

Vllt hat ja einer von euch ne Idee, wei ich das komplett in der Klasse lösen kann, so dass ich letztlich NUR die Klasse iniziiere mit "new Mailto;" und sich das mit dem Formular und allem dann selber in der KLasse löst^^
 
Das von dir vorgestellte Konzept lässt sich nicht mit dem Grundgedanken der Objektorientierung vereinbaren - Klar ist es möglich, aber in keinster Weise sinnvoll. Eine Klasse ist eine Abstraktion, eine Zusammenfassung von Eigenschaften / Zuständen und Methoden / Funktionen, die sich dann auf ein Objekt abbilden lassen.

Grob gesagt bräuchtest du für deine Vorhaben im Sinne der OOP folgende Komponenten:
  • Controller / Main Class, die alles weitere initiiert - In PHP außerhalb jeder Funktion / Klasse
  • View - Stellt die sichtbare Schnittstelle zum Client bereit
  • Mail - Verwaltung einer Mail, die gesendet werden soll
  • Validator (Validierung der Eingabedaten) - optional
Das ganz grob, natürlich kann man das noch alles verfeinern.
Nur weil OOP sich gut anhört, heißt das nicht, dass dadurch alles leichter wird, geschweige denn effizienter. Der Sinn von OOP ist die Kapselung, die Unifizierung und auch die Wiederverwendbarkeit. Und dann verrate mir doch mal, wo eine Klasse wiederverwertbar oder abgekapselt ist, wenn du ein Programm in wirklich nur einer Klasse mit vielen verschiedenen Bereichen schreibst ;)
Java mag vielleicht nicht die wirklich beste Sprache für alle möglichen Anwendungsbereiche sein, aber in Sachen OOP gibt sie doch schon einiges vor - Noch besser wäre natürlich Smalltalk, aber naja... dann liebe doch Java für den Anfang. Das heißt nicht, dass du es in genannter Sprache realisieren sollst, sondern einfach nur mal schaust, wie zB die Standardklassen gemanagt sind, und wie man damit arbeitet.
Solltest du wirklich nur eine Minianwendung schreiben wollen, reicht eine - wenn überhaupt - rein prozedurale / funktionale Herangehensweise.
 
Zurück