Codeoptimierung ?

  • PHP

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von BeefyX.

    Codeoptimierung ?

    Hallöchen ,

    folgendes Thema habe zurzeit eine Datei mit dem Namen: functions.inc.php dort sind so ziemlich alle Funktionen von mir drin. Diese habe ich öfters gebraucht deswegen ausgelagert und halt den Code dazu als Funktion.
    Soweit sogut nun bin ich am Optimieren bzw versuche es.

    Ich habe nun z.b. das ding ich sende öfters Email raus : Bei der Registrierung (Verifizierung) beim ändern gewisser sachen (Verifizierung) , für News usw.
    Nun habe ich mir gedacht da kann ich mir doch gleich ne Klasse für basteln ?

    Sowas wie :

    PHP-Quellcode

    1. $tMail = New Mail;
    2. $tMail->tFrom = "xxx@x.de";
    3. $tMail->tTo = "To@mail.de";
    4. $tMail->tText = "Der Text der gesendet wird\n";
    5. $tMail->tSubject = "Betreff";
    6. //Und Absenden dann mit:
    7. $tMail->Send();


    Wäre das besser als jedesmal eine Funktion aufzurufen ?
    Ich meine meine PHP mit den ganzen funktionen sieht ziemlich tricky aus.
    Und so hätte ich für verschiedene sachen gleich eine Klasse und wäre noch näher an der OOP Programmierung denk ich jedenfalls.


    Mfg
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    @AliveDevil

    Danke dafür. Kenne ich schon mir geht es jetzt nicht speziell nur um Mails versenden ^^.
    Ich habe zum Beispiel Funktionen die nur mit dem User zutun zu haben oder halt nur andere.

    Ist es sinnvoller zusammen gehörige Funktionen in eine bzw verschiedenen Klassen unterzubringen (Class User , Class Mail , Class News usw.) oder doch lieber nur funktionen ?

    Mit verschiedenen Klassen grenzt das doch mehr an OOP als nur funktionen oder ?

    Mfg
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    ohm wat?
    Du willst praktisch sowas machen:

    PHP-Quellcode

    1. class crapone
    2. {
    3. public __construct()
    4. {
    5. // nix
    6. }
    7. // hier irein code
    8. }
    9. $var = new crapone();

    Instanzierungen haben hier eher wenig Sinn, denn bei jedem Aufruf ein neues Objekt erzeugen ist irwie ungünstig.
    Machste also Statische Methoden die du dann inner Klasse aufrufst. Fertig.
    Nein eher sowas:

    PHP-Quellcode

    1. Class User
    2. {
    3. private $UserID = Null;
    4. function GetUserID() {
    5. return $this->UserID;
    6. }
    7. }


    So dass ich z.b. alle UserInfos / bzw alle Usersachen in einer Klasse habe und diese halt so ändern kann ohne jedes mal alles neu machen zu müssen von wegen das ändern oder dies halt in einer Klasse eben die dann mit den obigen Globalen Vars arbeiten kann.
    Und ich selbst bei fast keiner Funktion was übergeben muss ausser denen wo ich was änder halt.
    Weißt du was ich meine ?

    Mfg
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen

    PHP-Quellcode

    1. class emailClass
    2. {
    3. protected $strSender;
    4. public function getSender()
    5. {
    6. return $this->strSender;
    7. }
    8. protected $strTarget;
    9. public function getTarget()
    10. {
    11. return $this->strTarget;
    12. }
    13. protected $strContent;
    14. public function getContent()
    15. {
    16. return $this->strContent;
    17. }
    18. public function __construct($strSender, $strTarget, $strContent)
    19. {
    20. $this->strSender = $strSender;
    21. $this->strTarget = $strTarget;
    22. $this->strContent = $strContent;
    23. }
    24. function sendMail()
    25. {
    26. emailManager::sendMail($this->strFrom, $this->strTarget, $this->strContent);
    27. }
    28. }
    29. class emailManager
    30. {
    31. public static fuction sendMail($strFrom, $strTarget, $strContent)
    32. {
    33. //send ne mail hier
    34. }
    35. }


    So wirds aufgerufen:

    PHP-Quellcode

    1. $objMail = new emailClass("peterjürgenhans@ichbincool.de", "victim@asdf.com", "meine email oder so");
    2. $objMail->sendMail();
    3. // ODER.....!
    4. emailManager::sendMail("peterjürgenhans@ichbincool.de", "victim@asdf.com", "meine email oder so");


    Like this ( freihand geschrieben )