![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 2 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam koledzy, temat chyba niewiele mówi ale nie miałem pomysłu jak zwęzić do paru słów to o co mi chodzi.
Sprawa wygląda tak, że mam na przykład taki kod który wysyła maila do użytkownika. Chciałbym używać tego kodu w kilku miejscach, tak więc nie chcę z tego robić akcji kontrolera (wiem, mógłbym użyć tej akcji w innych kontrolerach przez np action helper, ale wydaje mi się to nieeleganckie). Nie chce tego kodu umieszczać w helperze, ponieważ z widokiem ma on niewiele wspólnego. W CakePHP w takim przypadku stworzył bym komponent i dołączał go do kontrolerów w których mi potrzebny. Więc pytanie jest takie, jak Wy to robicie w Zendzie. Mam nadzieje że wiadomo o co mi chodzi (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Utworz po prostu nowa klase WysylaczEmailiDoUsera i go uzywaj.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
A od czego Zend_Mail? (IMG:style_emoticons/default/winksmiley.jpg)
Jeśli mamy powtarzający się kod to możemy z tego zrobić: - widok - helper - akcję - kontroler - moduł - plugin - komponent Zależy, do czego to ma służyć (IMG:style_emoticons/default/smile.gif) ZF to raczej zbiór komponentów, nie wymusza np. MVC jak inne frameworki a jedynie sugeruje. To Ty decydujesz w jakim stopniu korzystać z ZF a w jakim ze swoich rozwiązań. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 2 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Możesz trochę rozwinąć koncepcje pluginu i komponentu? Pozostałe koncepcje odpadają. W chwili obecnej napisałem klasę dziedziczącą po Zend_Mail i umieściłem w /library/My/Mail/nazwaklasy.php, czyli zrobiłem to w taki spsób w jaki Zend sugeruje tworzyć rozszerzenia do frameworka (nowe filtry, walidatory etc). Jednak nie pasuje mi to za bardzo ponieważ uważam że ten kod powinien znajdować się w katalogu z aplikacją /application, tam gdzie kontrolery, widoki ... czyli rzeczy związane bezpośrednio z tematem aplikacji. Chodzi o to że jeżeli zacznę kolejny projekt, skopiuję z tego katalog /library, gdzie jest framework zenda + moje rozszerzenia związane z frameworkiem, nie chcę za każdym razem przeszukiwać tego zbioru i szukać plików które nie są potrzebne (czyli są związane bezpośrednio z tematem poprzedniej aplikacji). Nie wiem czy za bardzo nie zamieszałem, jeżeli tak pytajcie.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
Myślenie nie boli (IMG:style_emoticons/default/happy.gif) A czemu nie stworzysz dwóch przestrzeni nazw, jednej na klasy z których korzystasz w wielu projektach a drugiej na klasy aplikacji np Application_ i My_?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 2 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Kolego @zend masz rację myślenie nie boli. Więc pomyśl chwilę dlaczego napisałem na forum? Wszak masz podane na tacy pytanie "Więc pytanie jest takie, jak Wy to robicie w Zendzie". Pomysłów jak to zrobić mam być może więcej niż ty, jednak po to założyłem wątek aby dowiedzieć się jak robią to inni userzy Zenda. Tak więc kolego, zanim napiszesz kolejny, nabijający licznik post "pomyśl" trochę czy masz coś wartościowego do wyrażenia.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Plugin komponent piszesz na podobnej zasadzie, jak napisane są moduły frameworka, po prostu trzymając się zasad nazewnictwa i plikowni tworzysz swoją klasę i z niej korzystasz w kontrolerach, widokach czy modelach.
Cytat uważam że ten kod powinien znajdować się w katalogu z aplikacją - po pierwsze co za różnica a po drugie, co szkodzi to zmienić? Wystarczy dodać ścieżkę do komponentu przed użyciem.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 03:54 |