Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Małe pytanko odnośnie MVC, struktura folderów we frameworkach
Forti
post
Post #1





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Tak, wiem, pewnie ktoś zaraz wyskoczy, że odpowiedź znajde w google. Jednak przeszukiwałem i nie znalazłem.

Chodzi o proste pytanie. Przeglądam sobie artykuły o mvc, analizuje przykłady i teorie - wszędzie piszą, aby używać struktury folderów:
- model
- controller
- view

Wszystko fajnie pięknie. Jednak gdy zaglądam do frameworków (yi, CI itp.) na github, to ich struktura jest dla mnie jednym wielkim bałaganem, jeżeli chodzi o model - controller.

Znalazłem odpowiedź, że przy dużych projektach, struktura folderów model - controller - view jest trudna w utrzymaniu itp. Jednak konkretów brak. Może jest tu ktoś, kto potrafi to jasno wyjaśnić?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Controller, View zostaw tak jak jest, a model przenieś np. tak:

/Acme
- Forms
- Validators
- Enities
- ....
Go to the top of the page
+Quote Post
destroyerr
post
Post #3





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Tutaj nie ma nic do wyjaśniania. Jeżeli dla Ciebie i dla autorów tych artykułów definicją architektury jest struktura folderów to jest to niepoważne. Jeżeli pytasz o wzorzec MVC to definiuje on tylko zadania poszczególnych warstw i kierunki komunikacji pomiędzy tymi warstwami. Pobieżnie rzuciłem okiem na CI i nie widzę tam bałaganu, więc postaraj się o konkretniejsze pytania.
Dziwną sprawą jest budowanie swojego doświadczenia z programowaniem obiektowym na podstawie CI.
Go to the top of the page
+Quote Post
Turson
post
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Cytat
Jednak gdy zaglądam do frameworków (yi, CI itp.) na github, to ich struktura jest dla mnie jednym wielkim bałaganem, jeżeli chodzi o model - controller.

Przecież Yii na strukturę:
-controllers
-models
-views
Go to the top of the page
+Quote Post
Forti
post
Post #5





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


To ja jeszcze wielu rzeczy nie rozumiem z tego (IMG:style_emoticons/default/wink.gif) nie zawracam, ide dalej analizować kody i czytać teorie.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Struktura to tylko pomoc w organizacji.

To tak jak z szafą na ubrania. Układasz jak Ci wygodnie a nie patrzysz na to kto jak robi. Są lepsze sposoby i gorsze. Eksperymentuj.
Go to the top of the page
+Quote Post
Magan
post
Post #7





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.06.2009

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


W moim frameworku to wygląda np. tak:

system/
class/ (kontroler - "main", dblayer, config_manager, sqlcache, userManage itd.)
(pozostałe)/
plugins/ (hooki)
templates/ (view)
php/ (model)
(inne)/
Go to the top of the page
+Quote Post
gitbejbe
post
Post #8





Grupa: Zarejestrowani
Postów: 516
Pomógł: 63
Dołączył: 27.08.2012

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


@UP

fuuuuuu, ale brzydko (IMG:style_emoticons/default/nerdsmiley.png)
Go to the top of the page
+Quote Post
Magan
post
Post #9





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.06.2009

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


Fuuuuu, wersja wstępna, ale proszę bez offtopu. O gustach się nie dyskutuje, chciałem tylko potwierdzić zdanie przedmówcy odnośnie porównania struktury do szafy - tak jak wygodniej. Aczkolwiek mój framework jest tak skonstruowany, że zmiana struktury katalogów nie będzie wymagała dużo pracy, ot zmiany kilku inii kodu. Poza tym nie chodzi mi o to, by się chwalić, chodzi o to, by pokazać że może być tyle sposobów programowania ile osób interesuje się tą tematyką.

PS.: Mam również nadzieję, że nie miałeś zamiaru trolować, flamewar jest zbędny. (IMG:style_emoticons/default/wink.gif)

Ponadto obecna struktura fw jest uzasadniona tym, że rzeczywiście w "class/" znajdują się obiekt gdzie każdy poszczególny obiekt ma swoje zadanie, w tym kontroler scalający wszystko by funkcjonowało jak należy.

Ten post edytował Magan 19.09.2014, 13:13:55
Go to the top of the page
+Quote Post
Turson
post
Post #10





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


model też jest klasą to czemu trzymasz w php/ a nie class/ ? A templates to raczej sugeruje layout a nie widok
Go to the top of the page
+Quote Post
Magan
post
Post #11





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.06.2009

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


W php trzymam wszystko pozostałe co nie potrzebuje być obiektem a było by napisane struktualnie (głównie pliki includowane przez obiekt modelu w zależności od wyświetlanej strony, tak samo jak robi to obiekt widoku wywołujący poszczególne tpl-ki). Trzymanie się obiektowego programowania w zdecydowanej całości jest wg. mnie w negatywnym kontekście skrajnością. Jeśli się głębiej zastanowić to na upartego można również stwierdzić że metody obiektu to niekiedy formy struktualne, a nie stricte obiektowe.

Ten post edytował Magan 19.09.2014, 13:17:49
Go to the top of the page
+Quote Post
Turson
post
Post #12





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Więc na jakiej zasadzie ładujesz model do konkretnego kontrolera, skoro nie pobierasz instancji klasy? Samo include? I co wtedy jak chcesz z pewnego kontrolera odwołać sie do innego modelu, znowu include? Polecam najpierw popracować trochę na jakimś porządniejszym fw, żebyś wyrobił sobie kilka zdań na tego, jak co powinno mniej więcej wyglądać (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Magan
post
Post #13





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.06.2009

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


Dziękuję uprzejmie za radę aczkolwiek chcę najpierw trochę poeksperymentować. To czy mój pomysł okaże się wydajny i lekki, okaże się po czasie gdyż chcę postawić na nim m.in. swój blog i przenieść grę (w js/html5/php). Pokrótce zrobiłem to tak, że każdą klasę wywołuję poprzez kontroler, zaletą jest m.in. to, że mogę hookować wszystko co nie znajduje się na czarnej liście czyli spore możliwości modowania silnika bez ingerencji w sam silnik. Innymi słowy, ogólnie, wszystko zależy jakie są założenia projektu, taka powinna być struktura.

A, i nie samym include silnik żyje a tym, że tworzy instancje obiektów do własnej zmiennej (tablicy) i wszystko jest wywoływane przez __call().

Ten post edytował Magan 19.09.2014, 13:29:46
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: 24.08.2025 - 15:27