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:
<?php /* * W tym fragmencie kodu odwolujemy sie do modelu oraz sub-modulu user * ktory operuje rzadaniami zwiazanymi z operacjami na uzytkowniku */ $this->model[user]->userProfile(1); ?>
Ladowanie modulu (metoda w klasie Model):
<?php /** * Wybiera odpowiedni modul, includujac plik * * @param $strModuleType * @param $strModuleName * @param $strModuleVar * @return */ function loadModule( $strModuleType, $strModuleName, $strModuleVar = false ) { if ( !$strModuleVar ) $strModuleVar = $strModuleName; require_once ( ENVIE_DIR . \"modules\" . $strModuleType . \"envie.module.\" . $strModuleName . \"\" . $strModuleName . '.module.php' ); $this->model[$strModuleVar] = new $strModuleName; } ?>
Kazdy sub-modul jest "dzieckiem" (extends) klasy Model. Co sadzicie o takim rozwiazaniu