Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> własny cms - pytanie o architekturę
marcus753
post 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.
Go to the top of the page
+Quote Post
Dejmien_85
post 13.03.2015, 04:20:50
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 23
Dołączył: 23.04.2013

Ostrzeżenie: (0%)
-----


Cytat(marcus753 @ 12.03.2015, 12:41:15 ) *
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. ; )
Go to the top of the page
+Quote Post
PrinceOfPersia
post 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łę.


--------------------
Go to the top of the page
+Quote Post
!*!
post 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%)
-----


Cytat(marcus753 @ 12.03.2015, 12:41:15 ) *
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).
Go to the top of the page
+Quote Post
Forti
post 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
Go to the top of the page
+Quote Post
marcio
post 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%)
X----


Cytat(Forti @ 13.03.2015, 10:13:44 ) *
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
Go to the top of the page
+Quote Post
marcus753
post 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.
Go to the top of the page
+Quote Post
!*!
post 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).
Go to the top of the page
+Quote Post
marcio
post 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%)
X----


Cytat(!*! @ 14.03.2015, 10:32:03 ) *
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
Go to the top of the page
+Quote Post
Dejmien_85
post 17.03.2015, 23:19:57
Post #10





Grupa: Zarejestrowani
Postów: 251
Pomógł: 23
Dołączył: 23.04.2013

Ostrzeżenie: (0%)
-----


Cytat(marcus753 @ 13.03.2015, 20:46:07 ) *
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.


  1. $this->view->setVar('zmienna',
  2. $this->app->request(
  3. 'controller' => 'kontroler',
  4. 'action' => 'metoda',
  5. 'flag' => 'embeded' // jak sama nazwa wskazuje... ; )
  6. )
  7. );


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
Go to the top of the page
+Quote Post
!*!
post 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).
Go to the top of the page
+Quote Post
marcio
post 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%)
X----


Cytat(!*! @ 18.03.2015, 08:47:12 ) *
@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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.09.2019 - 05:56