Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Organizacja klas
Pjotrek80
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 9.04.2013

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


Problem dotyczy strony www - małego CMS opartego o MVC.

Mam klasę warstwy model dla części aplikacji służącej do wyświetlania galerii oraz klasę warstwy model od strony administratora.
Stworzyłem osobną klasę UploadFile i rozszerzyłem ją o klasę modelu galerii w części admin. Czy to dobre rozwiązanie? Czy lepiej to co jest w klasie UploadFIle umieścić w klasie modelu galerii administratora?

Funkcjonalność części administracyjnej pokrywa się częściowo z funkcjonalnością części standardowej - wyświetlanie strony.
Jak skorzystać z tych samych metod pobierania zdjęć w modelu administratorai i modelu służącego do wyświetlania zdjęć na stronie?
Go to the top of the page
+Quote Post
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Stwórz może katalog Core, który zawiera część wspólną dla obu części. Miałbyś wtedy wydzielone wspólne elementy, a także osobne dla części administracyjnej oraz klienckiej. W ten sposób mógłbyś odseparować obie części i biblioteki im potrzebne. W Core, Admin i Client mógłbyś zastosować model MVC niezależnie. Traktując każdą z nich jak swego rodzaju bibliotekę.
Go to the top of the page
+Quote Post
Pjotrek80
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 9.04.2013

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


Cytat(thek @ 20.07.2013, 14:00:28 ) *
Stwórz może katalog Core, który zawiera część wspólną dla obu części. Miałbyś wtedy wydzielone wspólne elementy, a także osobne dla części administracyjnej oraz klienckiej. W ten sposób mógłbyś odseparować obie części i biblioteki im potrzebne. W Core, Admin i Client mógłbyś zastosować model MVC niezależnie. Traktując każdą z nich jak swego rodzaju bibliotekę.

Nie jestem pewien czy nie wprowadziłoby to jakiegoś chaosu obecną strukturę.
Może załączę screena ze strukturą katalogów mojego projektu.
(IMG:http://img845.imageshack.us/img845/4129/iea5.jpg)
Go to the top of the page
+Quote Post
!*!
post
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


A jaki jest sens rozbijania tego na model dla użytkownika i osobny dla admina? Kontroler powinien odpowiadać za dostęp przez ACL do każdego komponentu modelu.
Go to the top of the page
+Quote Post
Pjotrek80
post
Post #5





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 9.04.2013

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


Cytat(!*! @ 21.07.2013, 10:09:24 ) *
A jaki jest sens rozbijania tego na model dla użytkownika i osobny dla admina? Kontroler powinien odpowiadać za dostęp przez ACL do każdego komponentu modelu.

(IMG:style_emoticons/default/smile.gif) Sam zastanawiałem się nad organizacją struktury, szukałem po sieci i wypytywałem tutaj na forum. I oto efekt (IMG:style_emoticons/default/smile.gif)
Wydawało mi się to dość logiczne i przejrzyste, bo chyba łatwiej jest się odnaleźć/zorientować w strukturze, jeżeli mamy w katalogu admin rzeczy związane z panelem admina, niż gdyby wszystko zostało wrzucone do jednego katalogu?
Byłbym bardzo wdzięczny gdybyś wypisał jak taka struktura powinna wyglądać i przy okazji odpowiedział na moje wątpliwość dotyczące organizacji klas/kodu wspólnego dla części admina i klienta.
Go to the top of the page
+Quote Post
!*!
post
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


A jak będziesz chciał kasować np. posty z forum który ma widok wspólny dla użytkownika i będziesz chciał coś zmienić to będziesz poprawiał to w 2ch plikach? Model jest jeden,wspólny i tylko on, ewentualnie widok, to kontroler wszystkim steruje jak wskazuje jego nazwa i może być on osobny (a nawet powinien) dla panelu.
Go to the top of the page
+Quote Post
Pjotrek80
post
Post #7





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 9.04.2013

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


Cytat(!*! @ 22.07.2013, 09:58:49 ) *
A jak będziesz chciał kasować np. posty z forum który ma widok wspólny dla użytkownika i będziesz chciał coś zmienić to będziesz poprawiał to w 2ch plikach? Model jest jeden,wspólny i tylko on, ewentualnie widok, to kontroler wszystkim steruje jak wskazuje jego nazwa i może być on osobny (a nawet powinien) dla panelu.

Fajnie, wspólny model rozwiązuję po części moje problemy z organizacją kodu.
Nie do końca rozumiem przykład z kasowaniem postów...
Czy takie funkcjonalności jak upload plików należy umieszczać w modelu, czy w oddzielnej klasie i rozszerzać klasę modelu o klasę np. UploadFile?
Go to the top of the page
+Quote Post
!*!
post
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Zarządzanie plikami, a model który ma kasować pliki to osobne klasy. Załóżmy że masz blog z panelem admina, w nim kasujesz komentarze, ale przykładowo wychodzisz poza panel i przeglądasz komentarze bezpośrednio we wpisie i tam masz link do kasowania jako że jesteś zalogowany jako admin. To przecież nie zrobisz osobnego kasowania w komentarzach i osobnego w panelu...
Go to the top of the page
+Quote Post
thek
post
Post #9





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




ACL, ogólnie system uprawnień, routing czy tego typu rzeczy, które faktycznie są pewnym trzonem używanym niezależnie od tego gdzie jesteśmy, to właśnie Core. Jeśli jest ona w miarę niezależna i nie potrzebuje wstrzyknięć, wydzielasz to jako bibliotekę, lub jeśli jest malutkie, ewentualnie helper.
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: 29.09.2025 - 00:51