Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomoc w budowie klasy
Forum PHP.pl > Forum > PHP > Object-oriented programming
f1xer
Mam pytanie otóż załóżmy że piszę klasę:

  1. <?php
  2. class page
  3. {
  4. public function loadSection($sectionName)
  5. {
  6. // ta metoda ładuje sekcje składające sie z modułów
  7. // i potrzebuje danych pobranych z bazy 
  8. }
  9. }
  10. ?>


jak w takim razie napisać taką klasę nie pobierając danych z bazy (gdzieś czytałem że nie na tym polega obiektowość) a zadaniem metody jest załadowanie modułów w moim microCMS'ie wtedy w templatce można napisać

  1. <?php
  2. $strona = new page;
  3. $strona->loadSection("LEFT");
  4. ?>


z góry dzięki za odpowiedź
Sedziwoj
Nie wiem czy dobrze rozumiem pytanie, ale wydaje mi się że powinieneś poczytać o MVC (tematów jest do licha i ciut).
Ogólnie chyba chodzi Ci o wydzielenie pewnych warstw, wtedy w widoku nie powinno być pobieranie danych, dane powinny być do niego przekazane... ale poczytaj i powiedz czy o to Ci chodziło.
.radex
Konkrety.

Powinieneś się zainteresować wzorcem projektowym MVC.

W takim przypadku kontroler © i widok (V) nic nie wiedzą o bazie danych. Model (M) pobiera dane z bazy, a kontroler przekazuje te dane widokowi.

http://wortal.php.pl/wortal/artykuly/php/a...wadzenie_do_mvc
f1xer
Dzięki panowie już chyba kumam o co chodzi biggrin.gif mam jeszcze jedno pytanie ponieważ to nad czym pracuję jest zbyt małym projektem do stosowania MVC czy rozwiązanie jakie podam poniżej będzie chociażby dopuszczalne?

1 Klasa Page - tylko metody prezentujące dane
2 Klasa Core - model i zarazem kontroler w jednym

i następne pytanie jeżeli w klasie page będę chciał użyć metody z klasy core to muszę tą klasę zaincludować w page.php tak?
.radex
MVC jest prawie zawsze dobre, przydaje się nawet w małych projektach. To co piszesz jest dopuszczalne (czemu miałoby nie być), ale nie jest tak dobre jak MVC.

Tak, żeby użyć klasy X musisz najpierw zaincludować plik z nią. To chyba oczywiste winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.