Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MVC - model, swobodne rozwazania
.dragonfly
post
Post #1





Grupa: Zarejestrowani
Postów: 217
Pomógł: 0
Dołączył: 5.10.2003
Skąd: Londyn / UK

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


Buduje aplikacje oparta o MVC i w zwiazku z tym faktem doszedlem do pewnego rozwiazania. Teraz mam pytanie na ile jest ono trafne.

Jak wszyscy wiemy model ma za zadanie tylko operacje na danych. Czy dobrym rozwiazaniem jest zbudowanie modelu ktory odwoluje sie do "pod-modelow" (modulow) w nastepujacy sposob:


  1. <?php
  2.  
  3. /*
  4.  * W tym fragmencie kodu odwolujemy sie do modelu oraz sub-modulu user
  5.  * ktory operuje rzadaniami zwiazanymi z operacjami na uzytkowniku
  6.  */
  7. $this->model[user]->userProfile(1);
  8.  
  9.  
  10. ?>


Ladowanie modulu (metoda w klasie Model):

  1. <?php
  2.  
  3.  
  4.  
  5.  /**
  6. * Wybiera odpowiedni modul, includujac plik
  7. * @param $strModuleType 
  8. * @param $strModuleName
  9. * @param $strModuleVar
  10. * @return 
  11. */
  12. function loadModule( $strModuleType, $strModuleName, $strModuleVar = false )
  13. {
  14. if ( !$strModuleVar ) $strModuleVar = $strModuleName;
  15. require_once ( ENVIE_DIR . &#092;"modules\" . $strModuleType . \"envie.module.\" . $strModuleName . \"\" . $strModuleName . '.module.php' );
  16. $this->model[$strModuleVar] = new $strModuleName;
  17. } 
  18. ?>


Kazdy sub-modul jest "dzieckiem" (extends) klasy Model. Co sadzicie o takim rozwiazaniu
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
seaquest
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

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


Jest ono calkiem pozyteczne, bo ladujesz klasy np tylko w kernelu, aczkolwiek pociaga za soba pewne konsekwencje. Moim zdaniem ta zmienna powinna byc "prywatna" (jezeli php5) i dostep do niej powinien byc ograniczony przez zdefiniowane metody.
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 10:37