Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF][ZendFramework] Pytanie gdzie umieścić powtarzający się kod
VegetaSSJ
post
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)
Go to the top of the page
+Quote Post
dr_bonzo
post
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.
Go to the top of the page
+Quote Post
Pilsener
post
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ń.
Go to the top of the page
+Quote Post
VegetaSSJ
post
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.
Go to the top of the page
+Quote Post
zend
post
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_?
Go to the top of the page
+Quote Post
VegetaSSJ
post
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.
Go to the top of the page
+Quote Post
Pilsener
post
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.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 03:54