MVC PHP projekt w celu sprawdzenia mojego rozumienia.

0

Cześć!
Mało się ostatnio udzielam na forum ale czas to zmienić! ;) Mało ostatnio też pisałem kodu ale udało się to przełamać.
Postanowiłem kontynuować projekt (pokazywałem go tutaj na forum, zgadnij który, w kodzie znajdziesz odpowiedź ;)). To co napisałem jest szkieletem tej aplikacji.
Napiszcie mi co powinienem poprawić (głównie chodzi mi o architekturę). Starałem się to napisać zgodnie ze wzorcem MVC.

https://github.com/MagicznyHubert/octo - nie sugerujcie się nazwą, generator githuba pomógł mi taką nazwę wybrać ;)

1

Czy zdajesz sobie sprawę z tego że to co napisałeś to pierwsza (może bardzo uproszczona ale jednak) wersja Twojego własnego mikro-frameworka? W praktyce jednak jest trochę inne podejście, Ty komunikujesz się z modelami w widoku, tymczasem we frameworkach (przynajmniej tych które spotkałem) to się dzieje w kontrolerze a do widoku przekazujesz dane w postaci tablicy co też zresztą zrobiłeś ale w widoku. Więc nie jest to klasyczny MVC ale MVP.

Warto by się było zastanowić nad taką przykładową strukturą katalogów:

/application
  /config
  /controllers
    welcome.php
  /i18n
  /models
  /views
    /template
      layout.php
    /error
      404.php        
    /welcome
      index.php        
  /vendor
  /storage
    /cache
    /logs
  bootstrap.php
/system
  /core
  /config
  /controllers
  /views
  /models
  /vendor
/web
  /css
  /images
  /js
  index.php
.htaccess
robots.txt
favicon.ico

Pomyśl o Layout Pattern, to ma zastosowanie w przypadku gdy w takiej twojej stronie na tym wszystkie zakładki będą miały podobny wygląd a Ty tylko będziesz zmieniał treść. Pomyśl o klasach do cache, obsłudze błędów (np. 404, 500) i własnych widokach. Może jeszcze jakiś własny ORM?

0
drorat1 napisał(a):

W praktyce jednak jest trochę inne podejście, Ty komunikujesz się z modelami w widoku, tymczasem we frameworkach (przynajmniej tych które spotkałem) to się dzieje w kontrolerze a do widoku przekazujesz dane w postaci tablicy co też zresztą zrobiłeś ale w widoku. Więc nie jest to klasyczny MVC ale MVP.

Właśnie nie pasowało mi z tym Modelem w Widoku ;) Jak to zmienię to będzie już klasyczne MVC?

drorat1 napisał(a):

Pomyśl o Layout Pattern, to ma zastosowanie w przypadku gdy w takiej twojej stronie na tym wszystkie zakładki będą miały podobny wygląd a Ty tylko będziesz zmieniał treść. Pomyśl o klasach do cache, obsłudze błędów (np. 404, 500) i własnych widokach. Może jeszcze jakiś własny ORM?

  1. Pomyślę o ORM na pewno.
  2. -|- o Layout Pattern.
  3. O co chodzi w "własnych widokach". Zrobiłem przecież tam jakieś te widoki + szablony ;)

Dziękuje za odpowiedź.

0
Trebuh napisał(a):

Właśnie nie pasowało mi z tym Modelem w Widoku ;) Jak to zmienię to będzie już klasyczne MVC?

No nie klasyczny MVC bo będziesz miał coś takiego że kontroler steruje wszystkim, tj. pobiera sobie dane z modelu, te później przekazuje do widoku przez te tablice klucz -> wartość. Będzie to tzw. model - widok - prezenter, jest to pochodna MVC. Przejrzyj takie frameworki jak CodeIgnither czy Kohana na bazie jakichś przykładowych kodów to sam zobaczysz.

O co chodzi w "własnych widokach". Zrobiłem przecież tam jakieś te widoki + szablony ;)

Tzn. chodziło mi o własne ładnie wyglądające strony dla Error 404 z CSS w przypadku gdy nie znaleziono strony.

1 użytkowników online, w tym zalogowanych: 0, gości: 1