własny cms - pytanie o architekturę |
własny cms - pytanie o architekturę |
12.03.2015, 12:41:15
Post
#1
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 3 Dołączył: 8.06.2009 Skąd: Kraków Ostrzeżenie: (0%) |
Witajcie,
w swoim życiu miałem okazje napisać kilka własnych cms-ów ale były to systemy bardzo proste bardziej projektowane do zarządzania już istniejącymi elementami na stronie niż dodawania nowych. Przymierzam się do zaprojektowania portalu, założenie jest proste: chciałbym mieć kilka wzorców gdzie mam zdefiniowane (fizycznie) różne miejsca na stronie oraz n modułów które mogę przyporządkowywać pod każdy z nich i tu pojawia się problem jak to wsadzić we wzorzec MVC ? zazwyczaj miałem jeden kontroler który odpowiadał jednemu widokowi i korzystał z kilku modeli tutaj jednak takie zastosowanie nie przejdzie... -------------------- Cokolwiek zostanie upuszczone na uklad elektroniczny, spadnie zawsze tam gdzie wyrzadzi najwiecej szkody.
|
|
|
13.03.2015, 04:20:50
Post
#2
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 23 Dołączył: 23.04.2013 Ostrzeżenie: (0%) |
Witajcie, w swoim życiu miałem okazje napisać kilka własnych cms-ów ale były to systemy bardzo proste bardziej projektowane do zarządzania już istniejącymi elementami na stronie niż dodawania nowych. Przymierzam się do zaprojektowania portalu, założenie jest proste: chciałbym mieć kilka wzorców gdzie mam zdefiniowane (fizycznie) różne miejsca na stronie oraz n modułów które mogę przyporządkowywać pod każdy z nich i tu pojawia się problem jak to wsadzić we wzorzec MVC ? zazwyczaj miałem jeden kontroler który odpowiadał jednemu widokowi i korzystał z kilku modeli tutaj jednak takie zastosowanie nie przejdzie... Gdy tylko zdejmiesz klapki MVC z oczu, wtedy znajdziesz odpowiedź. Wielu developerów straciło przez nie rozum - nie trać i Ty. ; ) |
|
|
13.03.2015, 09:20:16
Post
#3
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) |
haha, dokładnie. MVC jest dobre, jeśli pasuje. Jeśli nie pasuje do projektu, to się go nie stosuje, albo się dostosuje do siebie (zobaczcie, że nawet wiele frameworków webowych niby jest na MVC, a tak naprawdę nie do końca).
Cytat i tu pojawia się problem jak to wsadzić we wzorzec MVC ? Odwrotnie. To raczej wzorzec MVC powinno się dostosować do własnej aplikacji, a nie robić coś na siłę. -------------------- |
|
|
13.03.2015, 10:03:10
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
zazwyczaj miałem jeden kontroler który odpowiadał jednemu widokowi i korzystał z kilku modeli tutaj jednak takie zastosowanie nie przejdzie... A co ma MVC do aplikacji modułowej? -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
13.03.2015, 10:13:44
Post
#5
|
|
Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) |
Ja to rozwiązałem tak, że każdy moduł ma swoje kontrollery, modele, widoki itp. Moduł dodaje wpis do bazy danych "o sobie" w stylu:
tabel: sections - section a - section b - section c i potem tylko ustalasz kolejność it. i w pętli ładuje renderuje controllery ;P co prawda prosty cms typu onepage, ale moge pisać nowe moduły jako "bundle" i te potem po prostu instalować. Rozwiązań jest masa, moje pewnie jest jedno z gorszych. -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
13.03.2015, 17:51:18
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) |
Ja to rozwiązałem tak, że każdy moduł ma swoje kontrollery, modele, widoki itp. Moduł dodaje wpis do bazy danych "o sobie" w stylu: tabel: sections - section a - section b - section c i potem tylko ustalasz kolejność it. i w pętli ładuje renderuje controllery ;P co prawda prosty cms typu onepage, ale moge pisać nowe moduły jako "bundle" i te potem po prostu instalować. Rozwiązań jest masa, moje pewnie jest jedno z gorszych. Ja mam to rozwiazane bardzo podobnie mam front-controller ktory zajmuje sie ladowanie poszczegolnych kontrolerow modulow(u mnie komponentow) na podstawie uri wszystko mieli Router output tych komponentow wstrzykuje do glownego template-u gdzie mam bloki cos takiego jak w Twig-u. Potem mam pluginy ktore rozszerzaja dzialanie komponentow typu komentarze, sondy lub download Widgety sa uproszczonymi komponentami typu widget online albo wyszukiwarka. Ogolnie poczytaj o HMVC. -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
13.03.2015, 20:46:07
Post
#7
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 3 Dołączył: 8.06.2009 Skąd: Kraków Ostrzeżenie: (0%) |
Dziękuję wszystkim za odpowiedź ! ok, trochę poczytałem o modelu HMVC co ciekawe phalcon bardzo fajnie wspiera ten wzorzec więc nie ma z nim problemu...
Skoro całą aplikację zamykam w modułach to podzielę sobie je na 2 grupy podstawowe i dodatkowe w podstawowych wykorzystuje zwykły wzorzec MVC gdzie mam wzorce dla frontendu i backendu natomiast w modułach dodatkowych mamy moduły które będę wstrzykiwali w te wzorce podstawowe. Teraz tylko zastanawiam się jak z wykorzystaniem phalcona można wywołać w jednym kontrolerze inny kontroler razem z jego widokiem i zwrócić zawartość do głównego kontrolera który przekaże ją w zmiennej do swojego widoku. Dobrze myślę ? czy wzorce podstawowe powinny być modułami ? Pozdrawiam Marcin Gębala Ten post edytował marcus753 13.03.2015, 20:49:16 -------------------- Cokolwiek zostanie upuszczone na uklad elektroniczny, spadnie zawsze tam gdzie wyrzadzi najwiecej szkody.
|
|
|
14.03.2015, 10:32:03
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
Chyba za bardzo się w tym pogubiłeś przez "moduły". Najlepiej jakbyś rozdzielił odpowiednio http://forum.php.pl/index.php?showtopic=34...mp;#entry409280
(H)MVC nie ma nic z tym wspólnego. Z tego co opisałeś, Tobie chodzi o coś na wzór haków znanych choćby z wordpressa. W kontrolerze pomiędzy modelem a widokiem robisz odwołanie do odpowiedniego haka(inny kontroler) za jego pomocą zmieniasz/generujesz dane i przekazujesz je do widoku. -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
15.03.2015, 00:21:15
Post
#9
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) |
Chyba za bardzo się w tym pogubiłeś przez "moduły". Najlepiej jakbyś rozdzielił odpowiednio http://forum.php.pl/index.php?showtopic=34...mp;#entry409280 (H)MVC nie ma nic z tym wspólnego. Z tego co opisałeś, Tobie chodzi o coś na wzór haków znanych choćby z wordpressa. W kontrolerze pomiędzy modelem a widokiem robisz odwołanie do odpowiedniego haka(inny kontroler) za jego pomocą zmieniasz/generujesz dane i przekazujesz je do widoku. HMVC ma i to duzo wspolnego z tym: http://fuelphp.com/docs/general/hmvc.html zreszta w kohana istnieje to samo, w yii nazywaja to modules a symfony chyba podobna role tworza bundle?!? Haki?Mowisz o hookach/systemie eventow?To raczej co innego. Nie wyobrazam sobie tworzenie aplikacji modulowej bez hmvc -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
17.03.2015, 23:19:57
Post
#10
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 23 Dołączył: 23.04.2013 Ostrzeżenie: (0%) |
Teraz tylko zastanawiam się jak z wykorzystaniem phalcona można wywołać w jednym kontrolerze inny kontroler razem z jego widokiem i zwrócić zawartość do głównego kontrolera który przekaże ją w zmiennej do swojego widoku.
PS Poczytaj sobie także o MVP (Model-View-Presenter), może się Tobie przydać. Polecam. Ten post edytował Dejmien_85 17.03.2015, 23:22:48 |
|
|
18.03.2015, 08:47:12
Post
#11
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
@marcio - czyli chodzi Ci o to żeby dopisać "kontroler" do osobnego pliku kernel/boostrap? Nie nazwałbym tego modułami... ehh grupa PSR powinna się tym zająć...
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
18.03.2015, 09:13:16
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) |
@marcio - czyli chodzi Ci o to żeby dopisać "kontroler" do osobnego pliku kernel/boostrap? Nie nazwałbym tego modułami... ehh grupa PSR powinna się tym zająć... Jesli cie dobrze zrozumialem to mniej wiecej tak, chodzi o frontcontroller ktory odpala kontrolery wszystkich poszczegolnych modulow. -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 20:37 |