Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][opp]Dziedzczenie czy osobna metoda
Piniek
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Zastanawiam sie nad napisaniem klasy wysylajacej mail-e takie z prawdziwego zdarzenia z funkcjami takimi jak wysylanie zalacznikow format html itp...

No i tak sobie mysle co zastosowac przy wysylaniu maila html czy stworzyc nowa klasa (np: htmlmail) ktora bedzie dziedziczyc po klasie podstawowej metody i bedzie odawac wlasne czy tez popostu dopisac nowa metode do do klasy mail (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) co bedzie bardziej oop ;P
Troche namieszalem ale dopiero raczkuje w oop moze nawet pelzam.
Pozdrawiam Maciej (Piniek) Zabost

P.S:Jak skoncze pisac to dam wam klase do oceny.

Ten post edytował Piniek 15.02.2008, 20:48:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cinekz
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 6
Dołączył: 15.06.2006

Ostrzeżenie: (0%)
-----


Ja bym zrobił jedną klasę wszystko sklecająca, a dla formatów maili klasę abstrakcyjną i te klasę by sobie dziedziczył HtmlFormat, TextFormat, itd.

Wyglądało to by mniej więcej tak:
  1. <?php
  2. class Mail
  3. {
  4. public function setBody()
  5. {
  6. }
  7. // itd.
  8. }
  9. ?>


Klasa abstrakcyjna dla formaterów i przykładowe formatery:
  1. <?php
  2. abstract class Formatter
  3. {
  4. abstract public function compose();
  5. // tutaj jeszcze mozesz wsadzic co tam ci sie przyda
  6. }
  7.  
  8. class HtmlFormatter extends Formatter
  9. {
  10. // tutaj metody przetwarzajace charakterystyczne dla maila w Htmlu
  11. }
  12. ?>


No i przykład wykorzystania:
  1. <?php
  2. $mail = new Mail();
  3. $mail->setFrom( 'example@domain.com' );
  4. $mail->setTo( 'example-to@domain.com' );
  5. $mail->setFormatter( new HtmlFormatter() );
  6. $mail->setBody( 'tutaj cialo maila' );
  7. $mail->send(); //wysylanie
  8. ?>


Myślę, że pomogłem. Podany kod traktuj raczej jako pseudo-kod. Jeżeli chcesz zaczerpnąć inspiracji to popatrz sobie w komponent Mail z eZ Components.

Pozdrawiam, Marcin.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 15:58