![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
dziękuje za wszelkie porady, uwagi. zabieram się do poprawek.
proszę również o dalsze komentarze. Odłożyłem na chwile stronicowanie, potrzeba chwili wymogła na mnie zrobienie newslettera. Nie chce zakładać kolejnego tematu więc pokaże go tu. Jest to najprostsze wysyłanie maila, tymczasowo bez nagłówków. Powiedzcie mi czy idę w dobrą stronę. newsletter-class.php
index.php
|
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Ogólnie idziesz w dobrą stronę ale poczytaj o tym, co to jest polimorfizm i jak można go wykorzystać. Konkretnie chodzi mi o metody:
- GetMailsFromFile - GetMailsFromDb Generalnie nie powinno się tak robić (tworzyć osobnych metod do pobierania danych z różnych źródeł). Zdecydowanie lepiej utworzyć obiekt typu Loader, który by pobierał dane w speclajny sposób, coś na wzór:
Klasa Newsletter mogłaby wyglądać mniej-więcej tak:
oraz wykorzystanie:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 9 Dołączył: 28.08.2006 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Hmn... obsługa wyjątków, szczególnie przy pracy na pliku? Zawsze wydawało mi się, że nazewnictwo plików powinno wyglądać tak: class.Nazwaklasy.php, ale może to tylko moja konwencja (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#4
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
~phpion dzięki za przykład, uczę się dopiero i nie bardzo mi to wychodzi. zrobiłem coś takiego:
ale jest źle. dlaczego? ponieważ nie wiem gdzie mam podać nazwę pliku/query do bazy. ~Cypherq wiem o nazwach narazie testuje wszytko, później będę wyjątki łapał. narazie chce to uruchomić. #EDIT jak podam na sztywno nazwy pliku/query działa. #EDIT2 zrobiłem tak, powiedzcie co o tym sądzicie: newsletter-class.php
index.php
Ten post edytował piotrooo89 10.04.2009, 20:03:48 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Wydzieliłem z http://forum.php.pl/index.php?showtopic=118120
|
|
|
![]()
Post
#6
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 199 Pomógł: 2 Dołączył: 9.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
hmm..
1. jak będę posiadał 60k maili w bazie czy pliku (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ... To myślisz że wszystko gładko wyśle za jednym zamachem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ? 2. Może warto byłoby zaopatrzyć maila w nagłówki i autoryzację smtp. przy obecnym stanie większość serwerów oznaczy to flagą SPAM (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@piotrooo89 a dlaczego wymyślasz koło od nowa jest klasa phpMailer ma wszystko czego tobie potrzeba.
|
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#10
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
1. jak będę posiadał 60k maili w bazie czy pliku (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ... To myślisz że wszystko gładko wyśle za jednym zamachem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ? tak tak już o tym pomyślałem. dodam odpowiednie funkcje. 2. Może warto byłoby zaopatrzyć maila w nagłówki i autoryzację smtp. przy obecnym stanie większość serwerów oznaczy to flagą SPAM (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) nagłóweczki już są choć narazie chce zrobić ogólny zarys klasy i zapytać innych o zdanie. @piotrooo89 a dlaczego wymyślasz koło od nowa jest klasa phpMailer ma wszystko czego tobie potrzeba. tak jak napisał ~phpion: Może dlatego, że się chłopak uczy? i chyba bardziej cieszy coś własnego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) a wracając do tematu jak oceniacie? co zmienić, dodać? aktualnie wygląda to tak: newsletter.Class.php
index.php
|
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Moje 2 uwagi:
1. Loader::$errors - wg mnie komunikaty błędów powinny znajdować się w wyspecjalizowanych klasach, ponieważ teraz każda klasa pochodna będzie miała wszystkie komunikaty (po co np. w Loader_File komunikat wrong_sql?). Ponadto rozważyłbym zapis komunikatów w postaci stałych wewnątrz klasy (const). 2. Nie podoba mi się sposób dodawania nagłówków. Zrobiłbym to raczej w ten sposób:
i potem przy wysyłaniu maila wystarczyłoby przekształcić tą tablicę na stringa (tak, jak to robisz w przykładzie). Dzięki temu rozwiązaniu możesz już w konstruktorze machnąć kilka domyślnych nagłówków (np. ustawić kodowanie oraz typ wysyłanego maila). |
|
|
![]()
Post
#12
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
dzięki za kolejne rady. obecnie klasa wygląda tak:
newsletter.Class.php
index.php
czekam na dalsze rady (optymalizacja, poprawienie działania etc.). |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Może
a \r\n dodawać automatycznie ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Według mnie mógłbyś dać więcej metod typu
Kod setMessage( $msg ) { $this->msg = stripslashes( $msg ); } addAddress( $address ) { //walidacja adresu } Albo jeszcze sprawdzać czy wiadomość nie jest pusta.
Po co wstawiasz do metody kolejny parametr jak możesz je wyciągać wewnątrz klasy. Tak samo jak message i where i subject i miałbyś
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 9 Dołączył: 28.08.2006 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Te komunikaty o błędach, zawsze myślałem, że wygodniej trzymać w osobnym pliku. Wtedy zmieniając język komunikatów nie grzebiemy w klasie, a chyba o to chodzi?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.09.2025 - 07:25 |