Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.12.2005 Ostrzeżenie: (0%)
|
Witajcie.
Zastanawiam się nad tym czy istnieje w ZF jakaś możliwość realizowania przepływu danych w obu kierunkach pomiędzy kontrolerami. Chodzi mi o możliwość wykorzystania funkcjonalności istniejących modułów aplikacji. Prosty przykład: a) moduł mailing - zarządza lista mailngowymi, treściami mail etc, wysyła pocztę itp. (IMG:style_emoticons/default/cool.gif) moduł users - którego kontrolery pozwalają na zarządzanie użytkownikami. Teraz pytanie: jak ułatwić sobie życie i wykorzystać funkcjonalność modułu mailing np w procesie odzyskiwania hasła przez użytkownika. Czyli przykładowy request na moduł użytkownika /users/account/password-restore powinien wysłać email który pozwoli na odzyskanie hasła, po co tworzyć nową obsługę mailngu skoro ona już zaimplementowana w module mailing wystarczyło by pobrać z niego odpowiednią treść wiadomości, instancję transportera i wysłać wiadomość, po co powielać kod w module users. Problem jednak polega na tym, że nie bardzo jest możliwość odebrania danych przetworzonych przez kontroler z pominięciem warstwy widoku. Majcie jakieś doświadczenie lub pomysły na rozwiązanie tego problemu? Pozdrawiam pawella. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
źle myślisz.. znaczy po częsci dobrze, ze nie ma co powielac kodu, ale wykonanie tego to juz masz złe
Do wysyłania maila ma służyć klasa wysyłająca mail a nie kontroller. Kontroller jedynie ma wypełnić tę klasę danymi. Nie ważne czy to będzie kontroller w module mailing czy users. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%)
|
Tak jak pisze nospor. Moduł mailingu udostępnią jakiś interfejs do wysyłania maili, a kontrolery modułu służą już do wykonywania konkretnych działań przy jego użyciu.
Teoretycznie ładując moduł mailingu powinieneś być w stanie użyć interfejsu, który udostępnią np. załadować skonfigurowany przez ten moduł Zend_Mail do rejestru. Potem będziesz w stanie go użyć w innych częściach systemu; innych modułach. Ten post edytował LBO 25.09.2009, 10:41:35 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.12.2005 Ostrzeżenie: (0%)
|
Zgodzę się z Wami ale mam dwa ale (IMG:style_emoticons/default/smile.gif)
Po pierwsze całą logikę musimy zapakować do modelu, czyli rzeczy za które odpowiadać powinien raczej kontroler w module mailing takie jako pobranie odpowiedniego wzorca treści wiadomości, np w wymaganym języku, podstawienie właściwych danych, dołączenie odpowiednich załączników, muszę zapakować w model, lub dublować akcje w kontrolerze modelu users, czego właśnie chcę uniknąć. Druga rzecz, to po co pakować do rejestru obiekty które wykorzystywane są sporadycznie, skoro mogą być inicjowane poprzez kontroler właściwego modułu, oczywiście zawsze możemy zrobić singleton a więc więc dalej rozszerzamy logikę modelu. Pozostaje jeszcze problem z związany z tym, że jeżeli chcemy użyć modelu z różnych modułów, z pominięciem requestów do kontrolerów, należało by do Zend_Loader_Autoloader dodać wszystkie resource z danymi modelami, lub ładować klasy ręcznie. Odwołując się poprzez Dispather można utworzyć odpowiedni plugin który doda Autoloadera tylko resources modułu którego rządanie dotyczy. Wówczas autoloader będzie miał mnie przestrzeni do przeszukania, tym samym wydajność całej aplikacji będzie lepsza. Pozdrawiam. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 444 Pomógł: 79 Dołączył: 26.05.2009 Ostrzeżenie: (0%)
|
Zawsze mozesz dziedziczyc po Zend_Mail dodac wlasna logike trzymac to w libie i jedynie dodac namespace do autoloadera
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%)
|
Druga rzecz, to po co pakować do rejestru obiekty które wykorzystywane są sporadycznie, skoro mogą być inicjowane poprzez kontroler właściwego modułu, oczywiście zawsze możemy zrobić singleton a więc więc dalej rozszerzamy logikę modelu. Z tym rejestrem to był tylko pomysł - osobiście tego nie lubię, podobnie jak i singletonów. Spróbuj to narzędzie. |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 18:52 |